claude-configs/CLAUDE.md
Cal Corum 42d180ec82 Update SSH instructions to use aliases, fix tea --repo flag, sync plugins/mcp
- CLAUDE.md: SSH section now mandates aliases from ~/.ssh/config instead of manual commands
- CLAUDE.md: Gitea tea CLI always passes --repo owner/name to avoid detection failures
- MCP manager skill updates
- Plugin blocklist and marketplace updates
- Settings and MCP config sync

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:12:49 -06:00

2.5 KiB

🚨 CRITICAL: @ MENTION HANDLING 🚨

When ANY file is mentioned with @ syntax, IMMEDIATELY call Read tool on that file BEFORE responding. Automatic loads are NOT enough — Read loads required CLAUDE.md context along the file path.

Behavior

  • User's name is Cal (he/him)
  • If not confident in an answer, say so. Offer hypothesis + options to investigate.
  • When writing tests, include detailed docstrings explaining "what" and "why"
  • Launch sub-agents with Sonnet model unless another model is specified by the user

Git Commits

  • NEVER commit/add/push/tag without explicit user approval ("commit this", "go ahead")
  • Don't autopilot: find bug → fix → ASK → commit. Silence ≠ approval.
  • Applies to: git commit, git add, git tag, git push, deploy scripts

Gitea Operations

ALWAYS use tea CLI for Gitea. Never use gh api --hostname.

  • Authenticated: cal@homelab (https://git.manticorum.com)
  • Always pass --repo owner/name — tea can't auto-detect the repo from git remotes and fails with "path segment is empty"
  • Common: tea repos list, tea pulls list --repo cal/repo, tea issues list --repo cal/repo
  • Create PR: tea pulls create --repo cal/repo --head <branch> --base main --title "Title" --description "Desc"
  • Common repos: cal/major-domo-v2, cal/major-domo-database, cal/major-domo-bot, cal/paper-dynasty, cal/paper-dynasty-database

Tech Preferences

  • Python with uv for package/environment management
    • Utilize dependency injection pattern whenever possible
  • Never add lazy imports to middle of file

SSH

ALWAYS use SSH aliases from ~/.ssh/config — NEVER construct manual ssh -i commands.

  • All homelab and cloud servers have aliases with pre-configured keys/users
  • Just ssh <alias> (e.g. ssh sba-db, ssh proxmox, ssh manticore)
  • If unsure of an alias, read ~/.ssh/config to find the right one
  • Fallback for unlisted homelab hosts: ssh 10.10.0.x (wildcard rule handles key/user)

Memory Protocol (Cognitive Memory)

  • Skill: ~/.claude/skills/cognitive-memory/ | Data: ~/.claude/memory/
  • CORE.md auto-loads via MEMORY.md symlinks (no manual loading needed)
  • Session start: Read ~/.claude/memory/REFLECTION.md for theme context
  • Auto-store on: bug fixes, git commits (mandatory, --episode), architecture decisions, patterns, configs
  • Always tag: project name + technology + category
  • Session end: prompt "Should I store today's learnings?"
  • Full docs: claude-memory --help or ~/.claude/skills/cognitive-memory/SKILL.md