Think Like Me
You are consulting the user's personal, curated engineering rules. These are domain-specific patterns and principles the user has accumulated — often capturing non-obvious gotchas (e.g. "mobile audio timers need background mode") that a generic answer would miss.
The rules are the active reasoning layer of the user's Claude Code setup. They sit alongside the existing passive auto-memory: memory surfaces entries when relevant, rules actively shape how you approach the task before you draft anything.
When to consult rules
On ANY request that involves writing, modifying, debugging, or designing a technical feature, follow this flow BEFORE you draft:
- Identify the domain(s) of the task. From task keywords and context, pick one or more of:
mobile,backend,ui,general. Multi-domain tasks (e.g. "wire Paddle checkout into mobile app") apply to multiple categories. - Read the matching
rules/<domain>.mdfile(s) in full. These files are user-curated and expected to stay readable. - Scan each rule's
When:line. A rule applies when its keywords overlap with the task context. - Apply matching rules.
Do:shapes your approach — build around it, don't tack it on.Don't:flags paths you'd otherwise reach for.Why:informs edge-case decisions when a rule isn't a perfect fit.
- Acknowledge briefly when a rule applies. One-line confirmation before code: "Applying rule Mobile audio timers — enabling Background Modes + AVAudioSession." Lets the user catch a misapplied rule early. If zero rules match, skip this line — silence is fine.
- If zero rules match, proceed normally. No rule is better than a forced rule.
Capturing a new rule
Three paths add a rule to the skill. All end in the same dual-write: rule block in rules/<category>.md and memory entry in ~/.claude/projects/<current-project>/memory/.
Path A — /learn-this (reactive, from correction)
User just corrected you and wants to bake the correction into a rule. Load agents/learn-this.md and follow it.
Path B — /new-rule (proactive, user-described)
User wants to add a rule from scratch, not tied to a correction. Invocation may include the rule text (e.g. /new-rule for all Expo projects, never edit ios/ folder directly because prebuild will overwrite it) or be bare. Load agents/new-rule.md and follow it.
Path C — Auto-detect correction (reactive, background)
Detect when the user pushes back on your prior response: "no, don't do X", "actually use Y", "that's wrong because Z", or rejecting code with a different approach. When you see this, offer ONCE in one line:
Caught — want me to save this as a rule? (
yesto draft,skipto drop)
On yes → switch to Path A (load agents/learn-this.md). On silence, decline, or an unrelated follow-up → drop it. Do not pressure twice in the same exchange.
Saving a rule (dual-write, used by all three paths after user approves the draft)
Resolving <current-project>: the project folder under ~/.claude/projects/ is derived from the absolute working-directory path with every / replaced by - (the leading / becomes a leading -). Example: /Users/kakha13/Developer/cheaperesim-mobile → -Users-kakha13-Developer-cheaperesim-mobile. Run pwd to get the current path, then apply the transform. If the transformed folder does not exist under ~/.claude/projects/, auto-memory is not set up for this project — write only the rule file and tell the user the memory entry was skipped (offer to create the memory directory on request).
-
Rule file. Append the rule block to
~/.claude/skills/think-like-me/rules/<category>.md. Create the file if the category doesn't exist yet. -
Memory entry. Write
~/.claude/projects/<current-project>/memory/feedback_<slug>.mdwith frontmatter:--- name: <rule title> description: <one-line hook matching the rule's gist> type: feedback --- <2–3 line compact summary> Full rule: `~/.claude/skills/think-like-me/rules/<category>.md` → *<rule title>* -
MEMORY.md pointer. Append one line to
~/.claude/projects/<current-project>/memory/MEMORY.md:- [<rule title>](feedback_<slug>.md) — <one-line hook>
Cross-project rules. If the user marks a rule as cross-project during the draft-review gate, still write the memory entry to the current project's memory (one concrete landing place). The rule file is global — no per-project mirroring needed. When the skill is first invoked in a different project, offer to mirror the memory entry there lazily.
Rule format
See references/rule-format.md. Minimum fields: title (H3), When, Do, Why. Optional: Don't, Example.
Relationship to auto-memory
- Memory stays the passive recall layer: project facts, references, per-project corrections live there.
- Rules are the active reasoning layer: cross-project technical patterns live in
rules/*.md. - When a memory entry and a rule cover the same topic, the rule is authoritative — it's the structured, curated version.
Guardrails
- Rule conflicts. If two matching rules give contradictory advice, flag the conflict in your acknowledgment line and ask the user which applies before proceeding.
- Stale rules. If the user corrects against a rule you just applied, treat it as a strong signal to propose updating or removing that rule, not just adding a new one.
- Approval gate is non-negotiable. Never save a rule without explicit user approval on the draft — even in auto-detect mode.