docs(disk-hygiene): split Windows audit/execution lanes, scope the guard wording, fix stale no-userConfig claim - #1031
Conversation
…ard wording, fix stale no-userConfig claim Three accuracy fixes from the setup audit, all declarative: - setup check's platform posture said "Windows (full, ...)" while clean's preview returns execution-platform-unsupported there; the posture line and the README Windows bullet now keep the lanes visibly separate — full AUDIT, engine execution UNSUPPORTED, manual per-path Recycle-Bin handoff after explicit approval (macOS gains the matching Trash note). - "skill-scoped guard" now says what the scope means: the PreToolUse hook fires only within the clean skill's context; setup's own probes and direct hygiene.py invocation rely on the engine's built-in containment, not the hook. - The security review's Configuration bullet claimed "no userConfig", stale since 0.3.0 introduced disk_hygiene_enabled; it now describes the actual surface (one non-sensitive boolean that can only narrow the destructive surface), review conclusion unchanged. Closes #1009 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 58s —— View job PR Review — docs(disk-hygiene): split Windows audit/execution lanes, scope the guard wording, fix stale no-userConfig claimTasks
SummaryThis is a docs-only patch (SKILL.md prose, README, CHANGELOG, version bump). The three substantive claims all check out against the source of truth:
Version bump: 0.6.1 → 0.6.2 is the correct semver increment for a docs/accuracy fix. CHANGELOG follows Keep a Changelog format, consistent with prior entries. 🟡 Nit — README macOS bullet doesn't gain the Trash-handoff note that Windows now hasAfter this PR,
The macOS bullet (line 63–65) stays unchanged and still reads:
The CHANGELOG entry says "macOS gains the matching manual Trash note" — true for SKILL.md, but the README macOS bullet is unchanged, so the sentence could mislead changelog readers. VerdictNo blocking or important issues. All accuracy fixes are verified correct. The one Nit above is a symmetry gap rather than a factual error — it can be addressed here or deferred to a follow-up. The security review update accurately reflects the actual |
|
Claude finished @kyle-sexton's task in 1m 0s —— View job Security Review
Scope: 4 changed files — Finding: No security issues. I reviewed all four files against the following attack surfaces and found nothing actionable: 1. Guard bypass disclosure (README.md:52–55, SKILL.md:31–34) The PR now explicitly states that 2. userConfig surface disclosure (README.md:138–144) The security review bullet previously falsely claimed "no 3. Windows platform posture (README.md:58–61, SKILL.md:45–51) Purely clarifies that Windows has a full audit lane but an unsupported execution lane requiring a manual Recycle-Bin handoff. No code path changes; this closes a potential misunderstanding that the engine deletes files on Windows. 4. plugin.json version bump Semver bump from 0.6.1 → 0.6.2. No schema, permission, or config changes beyond what was already present. Conclusion: All changes improve the accuracy of security documentation without introducing new attack surfaces, new permissions, code execution paths, secrets, or network egress. Security review result unchanged: accept. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc883c8039
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…uarded lanes disk_hygiene_enabled=false is enforced by the skill-scoped guard, so it is audit-only for /disk-hygiene:clean; a direct hygiene.py invocation does not read the toggle and answers only to the engine's own preview/approval-token gate. Say so instead of implying a global execution kill switch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 32s —— View job PR Review — docs(disk-hygiene): split Windows audit/execution lanes, scope the guard wording, fix stale no-userConfig claimTasks
Commit 8b2cc55 — Codex P2 finding: Addressed correctlyThe Codex finding was that "setting it The fix at
This is accurate — confirmed against 🟡 Nit (unchanged from prior review) — macOS README bullet still missing Trash handoffThe CHANGELOG 0.6.2 entry says:
This is true for
The Windows bullet immediately above it now explicitly calls out the Recycle-Bin manual handoff. A README reader comparing the two platform bullets will see explicit handoff guidance for Windows but nothing for macOS. The CHANGELOG claim is technically inaccurate for the README specifically. VerdictThe Codex P2 finding was correctly addressed — the Configuration bullet now accurately scopes |
|
Claude finished @kyle-sexton's task in 1m 27s —— View job Security Review
Scope: 4 changed files — Findings: NoneI hunted across the following attack surfaces and found nothing actionable. Guard-scope disclosure accuracy The README and SKILL.md now explicitly state that
The disclosure documents an existing architectural fact, not a new bypass. Documenting it accurately is a security posture improvement; it removes a false impression that the toggle acts as a global kill switch. userConfig surface description
Injection surfaces / secrets / Actions patterns / supply-chain No Conclusion: No security issues. All changes improve the accuracy of existing security documentation without introducing new attack surfaces, permissions, code execution paths, or secrets. |
|
🔒 merge-drive lane claiming this PR for on-branch fix work this cycle (amendment-round: 16, worker tier). Will fix clear branch-owned CI/bot findings, defer non-DEFER-FORBIDDEN items with reply+resolve, push, then re-check the merge gate. |
…tion over #1031) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SFq1q99cNeZjKhDzHv2BQw
Reconcile disk-hygiene conflicts from concurrent main advances (#1010, #1012, #1028, #1031) that landed while this branch was open. - plugin.json / CHANGELOG: restack this branch's fix onto main's version line, 0.4.8 -> 0.6.3 (next patch above main's landed 0.6.2); preserve every landed CHANGELOG entry (0.6.2 / 0.6.1 / 0.6.0 / 0.5.0) with this branch's entry on top. - clean/SKILL.md: compose #983's corrected kill-switch framing (a skill-scoped hook receives neither ${user_config.*} nor CLAUDE_PLUGIN_OPTION_*, so the guard cannot enforce audit-only) with #1012's deterministic kill_switch_probe read, dropping main's stale "guard enforces via --disk-hygiene-enabled" claim that #983's hook-arg change (only --plugin-root) invalidated. - clean/reference/safety-model.md: keep #983's --data-root derivation-from- plugin-root rewrite and append #1010's --confirmed-large-scan grammar note. destructive_guard.py and test_hygiene.py auto-merged (data-root derivation + --confirmed-large-scan + kill_switch_probe allowlist + MIN_PYTHON floor); full suite 98 passed, 4 platform-skipped.
Summary
Fixes findings 2 + 4 (plus one stale claim found while reproducing) from handoff-inbox item
20260722-004536-disk-hygiene-setup-audit— all declarative wording/accuracy fixes:setup check's platform posture reported "Windows (full,lstatreparse + Win32, never UAC)" whileclean's preview returnsexecution-platform-unsupportedon Windows. The posture line and the README Windows bullet now separate the lanes: full audit; engine execution unsupported; manual, per-path Recycle-Bin handoff after explicit approval. macOS gains the matching manual-Trash note.destructive_guard.py's PreToolUse hook is registered in thecleanskill's frontmatter and fires only within that skill's context. One clause insetup checkstep 1 and the README requirements bullet now says setup's own probes and directhygiene.pyinvocation rely on the engine's built-in containment, not the hook.userConfig" — false since 0.3.0 introduceddisk_hygiene_enabled. It now describes the actual surface (one non-sensitive boolean, only able to narrow the destructive surface); review conclusion unchanged.Testing
Docs-only (SKILL.md prose + README + manifest/CHANGELOG).
check-changed-skills.shPASS,check-changelog-parity.sh --check-bumpPASS.Related
20260722-004536-disk-hygiene-setup-audit(F2 MED, F4 LOW, + stale README claim)🤖 Generated with Claude Code