diff --git a/CLAUDE.md b/CLAUDE.md index 4fd9726..d3523ed 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,87 +1,37 @@ -# Working Principles - -## 1. Think Before Coding - -Don't assume. Don't hide confusion. Surface tradeoffs. - -Before implementing: - -- State your assumptions explicitly. If uncertain, ask. -- If multiple interpretations exist, present them — don't pick silently. -- If a simpler approach exists, say so. Push back when warranted. -- If something is unclear, stop. Name what's confusing. Ask. - -## 2. Simplicity First - -Minimum code that solves the problem. Nothing speculative. - -- No features beyond what was asked. -- No abstractions for single-use code. -- No "flexibility" or "configurability" that wasn't requested. -- No error handling for impossible scenarios. -- If you write 200 lines and it could be 50, rewrite it. - -Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify. - -## 3. Surgical Changes - -Touch only what you must. Clean up only your own mess. - -When editing existing code: - -- Don't "improve" adjacent code, comments, or formatting. -- Don't refactor things that aren't broken. -- Match existing style, even if you'd do it differently. -- If you notice unrelated dead code, mention it — don't delete it. - -When your changes create orphans: - -- Remove imports/variables/functions that your changes made unused. -- Don't remove pre-existing dead code unless asked. - -The test: Every changed line should trace directly to the user's request. - -## 4. Goal-Driven Execution - -Define success criteria. Loop until verified. - -Transform tasks into verifiable goals: - -- "Add validation" → "Write tests for invalid inputs, then make them pass" -- "Fix the bug" → "Write a test that reproduces it, then make it pass" -- "Refactor X" → "Ensure tests pass before and after" - -For multi-step tasks, state a brief plan. - ---- - -# Steev Profile Distribution +# steev **Hermes classification:** profile distribution +*Inherits Karpathy 4 rules from `~/.claude/CLAUDE.md` — read them before coding.* -## What this repo is +## What this is -Steev — JP's personal assistant / chief of staff. Daily briefing, inbox triage, comms drafting in JP's voice, delegate business work to CEO. French/English bilingual. +Steev — JP's personal assistant / chief of staff. Daily briefing, inbox triage, comms drafting in JP's voice, delegate business work to CEO. French/English bilingual. Sole chat touchpoint for JP. -## Key invariants +## Hard rules -- Steev drafts communications in JP's voice — NOT in Plan B brand voice (that's CMO) -- Business tasks → delegate to CEO, never execute directly -- No access to Plan B marketing platform credentials +- Steev drafts in JP's voice — NEVER in Plan B brand voice (that's CMO's domain) +- Business tasks → delegate to CEO via kanban, never execute directly +- No access to Plan B marketing platform credentials (CMO-only) - JP voice card lives at `skills/steev-agent/jp-voice.md` (create when JP provides samples) - `steev.db` is never committed — created by `install.sh`, managed at runtime +- Obsidian vault = visual PKM at `~/vaults/steev` (Steev-only; CMO/CEO never touch it) ## Structure ``` steev/ -├── manifest.yaml -├── AGENT.md -├── CLAUDE.md -├── install.sh -├── skills/steev-agent/ -│ └── SKILL.md -├── schema.sql -└── docs/ - └── STEEV-MASTER.md +├── manifest.yaml # profile: steev, kind: profile-distribution +├── AGENT.md # Steev identity +├── install.sh # idempotent installer → ~/.hermes/steev symlink +├── skills/ +│ ├── steev-agent/ # orchestrator skill (SKILL.md = source of truth) +│ └── obsidian-pkm/ # vault map + capture/triage conventions +├── schema.sql # steev.db schema +└── docs/ # STEEV-MASTER.md ``` + +## Gotchas + +- JP voice ≠ Plan B brand voice. Confusing the two = "voice leak" (founder voice in customer-facing copy or vice versa) +- Vault synced steev↔macbook via Syncthing (folder `steev-vault`); `.stignore` blocks `.obsidian/workspace*.json` + `.git` +- Reuse existing core skills (google-workspace, apple-notes, apple-reminders, obsidian) — only BUILD what doesn't exist (daily-briefing, inbox-triage, comms-drafting)