Follow up from #3439 / PR #3442.
The Windows platform declares shell = "powershell" in tools/skillgen/platforms.toml, and the repo already has a dedicated, deliberately strict POSIX to PowerShell translator for the core skill body (tools/skillgen/gen.py, the _PY_INVOKE_POSIX/_PY_INVOKE_PS_OPEN etc. block). That translator only runs on the core monolith, not on the per-platform references/*.md files.
As a result, graphify/skills/windows/references/add-watch.md and graphify/skills/windows/references/query.md still contain literal mktemp /tmp/graphify_*.XXXXXX bash commands inside fenced code blocks, which don't exist on a native Windows shell. A Windows host following these reference docs (add, watch, query, path, explain) gets a command it can't run.
Fixing this properly needs a decision on approach, not a one line patch:
- Extend the existing strict translator to also run over
references/*.md, adding a translation for mktemp (PowerShell equivalent is roughly New-TemporaryFile or [System.IO.Path]::GetTempFileName(), but the "capture the printed path into a variable" idiom differs from bash's $(mktemp ...) and needs its own translation rule), or
- Give windows its own reference fragment variant for the handful of sections that use
mktemp, or
- Some other approach the maintainers prefer.
Flagged by the graphify review bot on PR #3442 (graphify/skills/windows/references/add-watch.md:15, escalate/medium), confirmed real by grepping — the same pattern also appears in references/query.md (6 more occurrences), which the original finding didn't call out.
Follow up from #3439 / PR #3442.
The Windows platform declares
shell = "powershell"intools/skillgen/platforms.toml, and the repo already has a dedicated, deliberately strict POSIX to PowerShell translator for the core skill body (tools/skillgen/gen.py, the_PY_INVOKE_POSIX/_PY_INVOKE_PS_OPENetc. block). That translator only runs on the core monolith, not on the per-platformreferences/*.mdfiles.As a result,
graphify/skills/windows/references/add-watch.mdandgraphify/skills/windows/references/query.mdstill contain literalmktemp /tmp/graphify_*.XXXXXXbash commands inside fenced code blocks, which don't exist on a native Windows shell. A Windows host following these reference docs (add, watch, query, path, explain) gets a command it can't run.Fixing this properly needs a decision on approach, not a one line patch:
references/*.md, adding a translation formktemp(PowerShell equivalent is roughlyNew-TemporaryFileor[System.IO.Path]::GetTempFileName(), but the "capture the printed path into a variable" idiom differs from bash's$(mktemp ...)and needs its own translation rule), ormktemp, orFlagged by the graphify review bot on PR #3442 (
graphify/skills/windows/references/add-watch.md:15, escalate/medium), confirmed real by grepping — the same pattern also appears inreferences/query.md(6 more occurrences), which the original finding didn't call out.