Claude-skill-registry julien-dev-powershell-profile

Manage PowerShell profile, aliases, functions. Triggers: add alias, update profile, modify claude command, Microsoft.PowerShell_profile.ps1

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/julien-dev-powershell-profile" ~/.claude/skills/majiayu000-claude-skill-registry-julien-dev-powershell-profile && rm -rf "$T"
manifest: skills/data/julien-dev-powershell-profile/SKILL.md
source content

PowerShell Profile Manager

Profile:

C:\Users\julien\OneDrive\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

Workflow

Observability

First: At the start of execution, display:

🔧 Skill "julien-dev-powershell-profile" activated
  1. Read profile to identify correct section (11 numbered sections)
  2. Edit profile (or use Python if OneDrive sync fails)
  3. User runs
    rup
    to reload

Performance Optimizations

Lazy Loading MCP Secrets

Location: profile:349-431 (

Load-MCPSecrets
function)

Impact: Saves ~700ms on EVERY PowerShell startup (-64% faster)

How it works:

  • CredentialManager Add-Type compilation deferred until needed
  • Only loaded when launching
    claude
    or
    happy
    commands
  • Check
    $env:MCP_SECRETS_LOADED
    to avoid reloading

Critical: When modifying secret loading, ensure it stays lazy!

Get-ClaudeArgs - DRY Common Logic

Location: profile:427-457

Purpose: Shared argument generation for

claude
,
happy
,
claude-official

Features:

  • Auto-detects
    .mcp.json
    in current directory
  • Auto-resume (unless
    --new
    ,
    -n
    ,
    new
    ,
    .
    passed)
  • Sets
    CLAUDE_CODE_DISABLE_TERMINAL_TITLE=1
    (prevents title override)

When modifying: Update Get-ClaudeArgs, not individual functions

Claude/Happy Architecture

Three Functions, One Goal

FunctionCommandPurpose
claude
happy.cmdDefault - uses Happy wrapper (mobile control)
happy
happy.cmdAlias for claude
claude-official
claude.cmdBypass Happy wrapper if needed

Why Happy?

Happy (npm: happy-coder) provides enhanced mobile control over Claude Code.

CRITICAL ISSUE: Both

happy.cmd
and
claude.cmd
contain:

title %COMSPEC%

This overwrites terminal title to "C:\WINDOWS\system32\cmd.exe"

Solution: Multi-layered hook system (SessionStart + PostToolUse)

See CLAUDE.md section "Solution Complète pour les Titres d'Onglets Dynamiques"

Requires 4 components:

  1. Prompt wrapper AFTER Zoxide (profile:86-104) ✅
  2. Windows Terminal suppressApplicationTitle: false ✅
  3. SessionStart hook restore-terminal-title-on-start.ps1 ✅
  4. PostToolUse hook update-terminal-title.js (after every Bash command) ✅

Reference Files

NeedFile
Section detailsreferences/profile-structure.md
Code patternsreferences/code-patterns.md
OneDrive issuesreferences/troubleshooting.md
Terminal title fixCLAUDE.md "Solution Complète pour les Titres d'Onglets"

Skill Chaining

Skills Required Before

  • None (entry point skill)

Input Expected

  • User request to modify profile/alias/function
  • Clear description of desired behavior

Output Produced

  • Format: Modified
    Microsoft.PowerShell_profile.ps1
  • Side effects: Changes apply after
    rup
    or new terminal

Compatible Skills After

  • None typically (standalone modifications)

Tools Used

  • Read
    (read current profile state)
  • Edit
    (modify profile sections)
  • Bash
    with Python (workaround for OneDrive sync)

Visual Workflow

User: "Add/modify PowerShell alias"
    ↓
[THIS SKILL]
    ├─► Read profile + refs as needed
    ├─► Identify correct section
    ├─► Edit (or Python workaround)
    └─► Verify modification
    ↓
User runs `rup` or opens new terminal