Skip to content

docs(permission-rule-hygiene): re-run the plugin bin PATH snapshot survey on Windows on 2.1.284+ #6760

Description

@kyle-sexton

Context

The permission-rule-hygiene convention has a "Known gap" section: plugin bin/ directories are missing from the Bash tool's PATH in some Windows sessions, and it treats bin-on-PATH as an end state only "until the gap closes upstream". Claude Code 2.1.284 stopped adding missing bin/ dirs and duplicate PATH entries on Windows (changelog item 2.1.284-040, range v2.1.265..v2.1.296).

Problem

The convention's recorded root cause (anthropics/claude-code#68066, a truncated shell snapshot) is a different mechanism from the 2.1.284 change, and that upstream issue was closed not_planned by an inactivity bot on 2026-07-25, not fixed. So it is unknown whether the gap still exists.

Evidence so far

Docs and changelog reading on 2026-10-10 only; no survey has been re-run on 2.1.284 or later (probed on Claude Code 2.1.296, 2026-10-10: not yet probed). The plugins/components Executables docs section does not mention Windows.

Open questions

  1. On Claude Code 2.1.284+ on Windows, are plugin bin/ directories on the Bash tool PATH in fresh sessions, including after a shell snapshot?
  2. If yes, can the convention drop the known-gap section and its workaround?

Acceptance criteria

  • The plugin bin/ PATH snapshot survey is re-run on Windows on 2.1.284 or later, with version and result recorded.
  • The convention is updated to match: gap removed, narrowed, or re-confirmed with the new evidence.

References

🤖 Generated with Claude Code

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 10, 2026
  2. github-actions commented on Oct 10, 2026

    @github-actions
    Contributor

    Thanks for the report. As I understand it: the permission-rule-hygiene convention's "Known gap" section documents a plugin bin/-not-on-PATH issue on Windows, citing anthropics/claude-code#68066 as the root cause, but that upstream issue was closed not_planned rather than fixed, and a separate changelog item (2.1.284-040) changed PATH-related behavior through a different mechanism. Since no survey has been re-run on 2.1.284+, it's currently unknown whether the gap still applies. The ask is to re-run the plugin bin/ PATH snapshot survey on Windows on a current version and update the convention's known-gap section to match (removed, narrowed, or re-confirmed).

    This looks well-scoped with clear acceptance criteria. I didn't find an existing open issue tracking this specific re-verification; #843 covered the original gap but is closed, and #5787 is a related but different PATH issue. Doing the survey requires access to a Windows machine running Claude Code 2.1.284 or later.

    Automated triage. A maintainer reviews it.

  3. added
    help wantedMaintainer would welcome help.
    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.
    on Oct 10, 2026
  4. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  5. added theissue type on Oct 12, 2026
  6. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 19, 2026
  7. kyle-sexton commented on Oct 19, 2026

    @kyle-sexton
    MemberAuthor

    This was generated by AI during triage.

    Held: the plugin bin/ PATH survey has to be re-run on a Windows host with Claude Code 2.1.284 or later; the lane has no Windows host.

  8. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor

    This was generated by AI during an unattended host run over /fleet:reach (melo-desk-001, native Windows lane).

    The plugin bin/ PATH survey was re-run on Windows on Claude Code 2.1.309: 8 of 8 fresh sessions delivered the plugin bin/. The intermittent gap was not reproduced.

    Live survey. Host melo-desk-001, Windows 11, Git Bash as the Bash tool. A throwaway plugin binprobe with one executable bin/binprobe-hello was loaded with --plugin-dir in 8 separate fresh claude.exe -p sessions (--tools Bash, auto mode). Each session ran one command: command -v binprobe-hello; binprobe-hello; echo "$PATH" | tr : "\n" | grep -i -E "plugin|binprobe".

    Sessions command -v resolved bare name ran (binprobe-ok) plugin bin/ on PATH
    8 8 8 8

    Under the July corpus's healthy rate (35 of 112, about 31%), 8 of 8 would come up about 1 time in 10,000. This is evidence that the 2.1.284 change closed the gap on this host. It is not proof of the upstream mechanism, and it covers a --plugin-dir load only. A marketplace install, the case the gap was measured on, could not be re-probed: no installed plugin ships a bin/ today.

    Snapshot corpus. The lane's ~/.claude/shell-snapshots/ now holds only 5 files, dated 2026-09-29 to 2026-10-08. Each session in the live survey wrote a fresh snapshot-bash-*.sh, and none of them was left on disk after the session ended. On 2.1.309 a snapshot no longer outlives its session, so the #843 corpus-sweep method can no longer measure this.

    Snapshot date final export PATH= line plugin bins in it
    2026-09-29, 2026-10-02 present 1 (source-control bin/)
    2026-10-03, 2026-10-07, 2026-10-08 present 0, as expected: #5882 removed the last plugin bin/ on 2026-10-02

    None of the five has the truncated, no-PATH-line signature from #68066.

    Convention update (second acceptance item). Narrow the Known-gap section, don't remove it. Record that the intermittent non-delivery is not reproduced on Windows 2.1.309 (8 of 8), and keep the "invoke by bundled path" guidance: no plugin in this repository ships a bin/ today, and the path form works in both states. The docs PR is queued and will be linked here. Outputs are kept locally under .work/host-runs/6760/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedMaintainer would welcome help.needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: lowNice-to-have, cosmetic, or speculative; opportunistic.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions