From 43e9d3984ab2635065b2692fa528090ed3147323 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 21 Aug 2026 06:02:06 +0000 Subject: [PATCH] style: place INSTALLATION.md Windows Notes where its ToC entry says; PEP 8 blank lines in encoding-fix scripts Review follow-up on PR #972: the Windows Notes section now sits between Verification & Testing and Troubleshooting, matching the Table of Contents order, and the four scripts patched for #969 are back to exactly two blank lines after the reconfigure block. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4 --- INSTALLATION.md | 66 +++++++++---------- .../scripts/skill_security_auditor.py | 1 - .../dossier/scripts/citation_tracker.py | 1 - .../scripts/disconfirming_evidence_balance.py | 1 - .../dossier/scripts/source_tier_classifier.py | 1 - 5 files changed, 33 insertions(+), 37 deletions(-) diff --git a/INSTALLATION.md b/INSTALLATION.md index 852fc058..e1e11c04 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -21,39 +21,6 @@ Complete installation guide for all 205+ production-ready skills across multiple --- -## Windows Notes - -Two Windows-specific caveats to know before cloning or running skills (issues #968 and #969): - -### Symlinks: mirror trees need `core.symlinks=true` - -The cross-platform mirror trees (`.gemini/`, `.codex/`, `.vibe/`, `.hermes/`) are built from **relative symlinks** into the real skill directories. Git for Windows defaults to `core.symlinks=false`, so a default clone checks those 1,300+ links out as **1-line text files containing only the target path** — copying a skill folder from a mirror tree then silently gives you dead pointer files instead of skills. - -Before cloning on Windows: - -1. Enable **Developer Mode** (Settings → System → For developers), or run Git from an elevated prompt. -2. Clone with symlinks enabled: - - ```powershell - git clone -c core.symlinks=true https://github.com/alirezarezvani/claude-skills.git - ``` - -If you already cloned without it, either re-clone as above, or **copy skills from the real domain directories** (e.g. `engineering-team/`, `marketing-skill/`) instead of the mirror trees — the Claude Code plugin/marketplace path always uses the real directories and is unaffected. Quick sanity check after any copy: a real `SKILL.md` is more than one line long. - -### Console encoding: run Python tools with UTF-8 - -Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot encode the box-drawing and comparison characters (`╔`, `≥`, `✅`) some skill tools print, which crashes the script at print time with `UnicodeEncodeError`. The most-affected tools now re-encode their own output, but as a blanket fix for every script in this library, enable Python's UTF-8 mode: - -```powershell -# Per session -$env:PYTHONUTF8 = "1" - -# Or permanently -setx PYTHONUTF8 1 -``` - ---- - ## Quick Start **Choose your agent:** @@ -550,6 +517,39 @@ python3 ~/.claude/skills/content-production/scripts/seo_optimizer.py test-articl --- +## Windows Notes + +Two Windows-specific caveats to know before cloning or running skills (issues #968 and #969): + +### Symlinks: mirror trees need `core.symlinks=true` + +The cross-platform mirror trees (`.gemini/`, `.codex/`, `.vibe/`, `.hermes/`) are built from **relative symlinks** into the real skill directories. Git for Windows defaults to `core.symlinks=false`, so a default clone checks those 1,300+ links out as **1-line text files containing only the target path** — copying a skill folder from a mirror tree then silently gives you dead pointer files instead of skills. + +Before cloning on Windows: + +1. Enable **Developer Mode** (Settings → System → For developers), or run Git from an elevated prompt. +2. Clone with symlinks enabled: + + ```powershell + git clone -c core.symlinks=true https://github.com/alirezarezvani/claude-skills.git + ``` + +If you already cloned without it, either re-clone as above, or **copy skills from the real domain directories** (e.g. `engineering-team/`, `marketing-skill/`) instead of the mirror trees — the Claude Code plugin/marketplace path always uses the real directories and is unaffected. Quick sanity check after any copy: a real `SKILL.md` is more than one line long. + +### Console encoding: run Python tools with UTF-8 + +Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot encode the box-drawing and comparison characters (`╔`, `≥`, `✅`) some skill tools print, which crashes the script at print time with `UnicodeEncodeError`. The most-affected tools now re-encode their own output, but as a blanket fix for every script in this library, enable Python's UTF-8 mode: + +```powershell +# Per session +$env:PYTHONUTF8 = "1" + +# Or permanently +setx PYTHONUTF8 1 +``` + +--- + ## Troubleshooting ### Universal Installer Issues diff --git a/engineering/skills/skill-security-auditor/scripts/skill_security_auditor.py b/engineering/skills/skill-security-auditor/scripts/skill_security_auditor.py index 59a4f26a..86ad7567 100755 --- a/engineering/skills/skill-security-auditor/scripts/skill_security_auditor.py +++ b/engineering/skills/skill-security-auditor/scripts/skill_security_auditor.py @@ -36,7 +36,6 @@ if hasattr(sys.stderr, "reconfigure"): sys.stderr.reconfigure(encoding="utf-8", errors="replace") - class Severity(IntEnum): INFO = 0 HIGH = 1 diff --git a/research/dossier/skills/dossier/scripts/citation_tracker.py b/research/dossier/skills/dossier/scripts/citation_tracker.py index 2f0f0ebe..37e1d264 100644 --- a/research/dossier/skills/dossier/scripts/citation_tracker.py +++ b/research/dossier/skills/dossier/scripts/citation_tracker.py @@ -40,7 +40,6 @@ if hasattr(sys.stderr, "reconfigure"): sys.stderr.reconfigure(encoding="utf-8", errors="replace") - SESSIONS_DIR = Path.home() / ".dossier_sessions" VALID_CLASSIFICATIONS = ["supporting", "disconfirming", "inconclusive"] VALID_TIERS = ["primary", "secondary", "tertiary"] diff --git a/research/dossier/skills/dossier/scripts/disconfirming_evidence_balance.py b/research/dossier/skills/dossier/scripts/disconfirming_evidence_balance.py index f0d0e786..74778208 100644 --- a/research/dossier/skills/dossier/scripts/disconfirming_evidence_balance.py +++ b/research/dossier/skills/dossier/scripts/disconfirming_evidence_balance.py @@ -35,7 +35,6 @@ if hasattr(sys.stderr, "reconfigure"): sys.stderr.reconfigure(encoding="utf-8", errors="replace") - SESSIONS_DIR = Path.home() / ".dossier_sessions" MIN_RATIO = 0.30 WARN_RATIO = 0.20 diff --git a/research/dossier/skills/dossier/scripts/source_tier_classifier.py b/research/dossier/skills/dossier/scripts/source_tier_classifier.py index 65a9e15c..768b7ae0 100644 --- a/research/dossier/skills/dossier/scripts/source_tier_classifier.py +++ b/research/dossier/skills/dossier/scripts/source_tier_classifier.py @@ -37,7 +37,6 @@ if hasattr(sys.stderr, "reconfigure"): sys.stderr.reconfigure(encoding="utf-8", errors="replace") - # Pattern-based tier assignment. Most specific patterns first. PRIMARY_DOMAIN_EXACT = {