# sccs v2.39.0 | Claude Code Sync Tool (UV)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Setup:      uv venv && venv+ && uv pip install -e ".[dev]"
▸ Sync:       sccs sync --dry-run
▸ Sync+Git:   sccs sync --commit --push
▸ Sync+Docs:  sccs sync --docs --commit --push
▸ Status:     sccs status
▸ Docs:       sccs docs generate --dry-run
▸ Categories: sccs categories list --all
▸ Test:       pytest --cov=sccs
▸ Lint:       ruff check sccs/ tests/ && ruff format --check sccs/ tests/

# Doctor (System & Plugin Health)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Check:      sccs doctor check
▸ Install:    sccs doctor install
▸ Update:     sccs doctor update
▸ Optimize:   sccs doctor optimize           # v2.30.0: install+update+drift warning
▸ Optimize+:  sccs doctor optimize --strict  # v2.30.0: queue uninstall for foreign plugins/MCP
  (checks Node.js, claude CLI, plugins, npx tools, ~/.npm + ~/.claude permissions)
  (v2.31.0: also strips doctor.disallowed_hooks from ~/.claude/settings.json after every pass)
  (v2.32.0: doctor.protected_hooks ['gsd-'] never stripped; update/optimize auto-run safe maintenance, destructive still confirms)
  (v2.32.1: npm-bin-global check gates install on <prefix>/bin too; system npm prefixes → user-local ~/.npm-global only, no chown)
  (v2.33.0: PluginSpec.allowlist_only — LSPs + frontend-design@claude-code-plugins are foreign-drift allowlist only, no MISSING/OUTDATED/marketplace block; check↔update now converges)
  (v2.33.2: reporter never recommends `sudo chown /usr/bin` — fix_command returns None for system/multi-user paths; reporter delegates to safe `_npm_global_fix_block`; label `npm bin -g` → `npm prefix bin`; restart-shell hint after fix)

# OpenCode Integration (v2.37.0+)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Status:     sccs integrations opencode status
▸ Map models: sccs integrations opencode map-models   # v2.38.0: assign CC models -> OpenCode models
▸ Agents:     sccs integrations opencode export-agents --dry-run
▸ Commands:   sccs integrations opencode export-commands --dry-run
▸ MCP:        sccs integrations opencode merge-mcp --dry-run
  (skills/rules read natively by OpenCode from ~/.claude; agents/commands/MCP converted one-way)
  (v2.39.0: doctor-managed gsd-*/playwright-cli excluded by default; own patterns via opencode.exclude; -a/-c bypasses exclude)

# PyPI Publishing
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Build:      uv build
▸ TestPyPI:   uv publish --publish-url https://test.pypi.org/legacy/
▸ PyPI:       uv publish
