Files
claude-skills/.wiki/source/active-platform-decision.md
vitya af94830fd5 feat(project-bootstrap): add we're on Windows to default CLAUDE.md template
Pin every newly-bootstrapped project to Windows / PowerShell out of the box
by adding a fifth trigger line to the CLAUDE.md template. The line activates
the active-platform skill, which then governs all command/example output.

- skills/project-bootstrap/assets/CLAUDE.md.template: append `we're on Windows`
- skills/project-bootstrap/SKILL.md: sync the embedded preview in Step 5 and
  document the Linux/macOS substitution
- CLAUDE.md (this repo): backfill the line — was created from old template
- dist/project-bootstrap.skill: rebuilt
- .wiki/source/active-platform-decision.md: append "Wired into project-bootstrap"

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:05:57 +03:00

2.4 KiB
Raw Blame History

Decision: active-platform skill

2026-04-28.

Problem

The user develops on multiple machines (Windows primary, Linux/macOS secondary). I was generating bash one-liners by default — wrong shell for their daily workstation. Need a way to make Windows/PowerShell the default and switch on a phrase.

Options weighed

  • Project memory — wrong scope (project-only, doesn't cross repos).
  • Global ~/.claude/CLAUDE.md — right scope, simple, but the user explicitly preferred a skill: "поживём со скиллом" (let's live with a skill and iterate).
  • New skill ← chosen.

The user's reasoning for the skill route: it's a discoverable, shareable artifact that lives next to their other 12 skills, and it can evolve with the same edit/build/install loop.

What the skill does

Switches command/example generation between Windows / Linux / macOS based on session signals. Default = Windows + PowerShell. Trigger phrases in RU + EN (e.g. "мы на винде", "we're on Linux"). The rule applies only to user-facing output — tool calls still follow the harness's Shell: line.

Full spec: skills/active-platform/SKILL.md.

Why this is a skill, not memory

  • Discoverability: appears in available_skills list, can be re-read or audited.
  • Cross-repo: installed into ~/.claude/skills/, applies in every session regardless of project.
  • Iterable: lives in this repo's skills/ so we can edit + reinstall as we learn what triggers and exceptions actually happen in practice.

Wired into project-bootstrap

The default platform should travel with every new project we create. Updated project-bootstrap so its CLAUDE.md.template adds a fifth trigger line: we're on Windows. That line is one of active-platform's recognized switches, so any project bootstrapped from now on starts pinned to Windows / PowerShell. If the user is bootstrapping on a Linux/macOS host, the SKILL.md Step 5 note tells them to swap the line for we're on Linux / we're on macOS.

Backfilled the same line into this repo's own CLAUDE.md (which was created from the old template).

Open questions to revisit

  • Are the trigger phrases comprehensive enough? Add real-world examples as they come up.
  • WSL handling — currently treated as Linux. Reconsider if user has WSL-specific needs.
  • macOS divergences (BSD coreutils, Homebrew) — minimal coverage now, expand if user actually uses macOS often.