fix: close remaining d365fo-cli skill audit items (#10, #12) - #134
Merged
Conversation
Follow-up to PR #127. Both items were left open at merge time. #10 Non-ASCII in Install-D365FoCopilotSkills.ps1 The file has no BOM, so Windows PowerShell 5.1 reads it as ANSI. This is not just a comment-cosmetics issue: the em dashes sit in .PARAMETER and .EXAMPLE blocks, so `Get-Help` rendered them as mojibake - contains — or will contain — the .github/ directory All em dashes and box-drawing characters are now ASCII. Adding a BOM instead is not an option for these scripts: emit-skills.ps1 carries a #!/usr/bin/env pwsh shebang that a BOM would break, and keeping the two scripts encoded the same way is worth more than the typography. Also fixed the deletion hints in the migration notice: they suggested `Remove-Item -Recurse` for a file, and offered commands for paths that don't exist. Each hint is now printed only when its target is present, with -Recurse only on the directory. #12 Skill activation is a judgement call, not a glob The skill replaces 19 .instructions.md files that applied deterministically via applyTo. A skill exposes only name + description and the agent decides relevance itself - that is what makes it cheap, but it is a real behaviour change and it was undocumented. docs/SETUP.md now explains this where users hit it, including how to force activation ("use the d365fo-cli skill", or naming a references/ file), where each IDE shows which skills were applied, and that skills/copilot/*.instructions.md is still emitted for anyone who wants the deterministic scoping back. The installer's legacy notice no longer flatly calls those files safe to delete, since that now contradicts documented advice - it says the skill supersedes and does not conflict with them, and points at SETUP.md. Verified on Windows PowerShell 5.1: Get-Help renders clean ASCII, the installer deploys SKILL.md + 19 references and prunes stale ones, and the emitters remain drift-free. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FfAAnxQDnPHRB1ne5H724n
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the last two open items from the PR #127 audit. Nothing from that review is left after this.
#10 — non-ASCII in
Install-D365FoCopilotSkills.ps1I filed this as cosmetic. It isn't: the em dashes sit in
.PARAMETERand.EXAMPLEblocks, and the file has no BOM, so Windows PowerShell 5.1 reads it as ANSI andGet-Helprenders them broken.Em dashes and box-drawing characters are now ASCII. A BOM would have been the other fix, but not for these two scripts —
emit-skills.ps1carries a#!/usr/bin/env pwshshebang that a BOM breaks, and it's worth more to keep both scripts encoded the same way than to keep the typography.While in there: the migration notice suggested
Remove-Item -Recurseon a file, and printed hints for paths that don't exist. Each hint now appears only when its target is actually present, with-Recurseonly on the directory.#12 — skill activation is a judgement call, not a glob
The skill replaced 19
.instructions.mdfiles that applied deterministically throughapplyTo. A skill exposes onlyname+description, and the agent decides relevance for itself. That's exactly what makes it cheap — but it's a real behaviour change and it was nowhere in the docs.docs/SETUP.mdnow covers it at the point users hit it: how to force activation (use the d365fo-cli skill, or naming areferences/file), where each IDE shows which skills were applied, and thatskills/copilot/*.instructions.mdis still emitted for anyone who wants deterministic scoping back.That last point contradicted the installer, which flatly called the legacy files safe to delete — it now says the skill supersedes and doesn't conflict with them, and points at SETUP.md.
Verified on Windows PowerShell 5.1
Get-Helprenders clean ASCII.SKILL.md+ 19 references, prunes a planted stale one, and the legacy notice only offers commands for paths that exist.git diffclean afteremit-skills.py).No code changes — scripts and docs only.
🤖 Generated with Claude Code
https://claude.ai/code/session_01FfAAnxQDnPHRB1ne5H724n