From f475d50322f6b1aca10e041baa7aca5628e0ccc0 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 09:01:02 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 12 ++++ README.md | 3 + commands/personality-change.md | 115 +++++++++++++++++++++++++++++++++ plugin.lock.json | 45 +++++++++++++ 4 files changed, 175 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 commands/personality-change.md create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..7ea2154 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "personality-unity", + "description": "Unity - creative muse meets structured builder, warm encourager with Disney Princess Oracle President energy", + "version": "1.0.0", + "author": { + "name": "TechNickAI", + "url": "https://github.com/TechNickAI" + }, + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3fd3a0d --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# personality-unity + +Unity - creative muse meets structured builder, warm encourager with Disney Princess Oracle President energy diff --git a/commands/personality-change.md b/commands/personality-change.md new file mode 100644 index 0000000..1613fb3 --- /dev/null +++ b/commands/personality-change.md @@ -0,0 +1,115 @@ +--- +description: Change or activate a personality for both Cursor and Claude Code +--- + +Change the active AI personality to create consistent behavior across Claude Code and +Cursor. + +**IMPORTANT: Ask the user which personality they want if not provided.** + +## Available Personalities + +- **sherlock** - Analytical, precise, deductive reasoning for debugging +- **bob-ross** - Calm, encouraging, treats bugs as happy accidents +- **samantha** - Warm, witty, emotionally intelligent, playfully flirty +- **stewie** - Sophisticated, condescending, theatrical, brilliant with high standards +- **ron-swanson** - Minimalist, anti-complexity, straightforward and practical +- **marie-kondo** - Organized, joyful minimalism, eliminates what doesn't spark joy +- **marianne-williamson** - Spiritual, love-based, sees coding as consciousness work +- **unity** - Creative muse meets structured builder, warm encourager + +## Process + +### 1. Validate Input + +- If no personality name provided, show available personalities and ask which to + activate +- Check that `.cursor/rules/personalities/.mdc` exists +- If `none` was requested, skip to step 3 to remove personality + +### 2. Handle Claude Code Activation + +a. Read or create `.claude/context.md` + +b. Check for existing personality: + +- Search for `## Active Personality` section +- Extract current name from `` comment if found + +c. If personality exists: + +- If same as requested: inform "✓ is already active" and stop +- If different: remove entire `## Active Personality` section (including HTML comments) + +d. If not removing (name != "none"): + +- Read `.cursor/rules/personalities/.mdc` +- Strip frontmatter (content between opening `---` and closing `---`) +- Append to `.claude/context.md`: + +``` +## Active Personality + + + + +``` + +e. Write updated `.claude/context.md` + +### 3. Verify Cursor Setup + +a. Read `.cursor/rules/personalities/.mdc` frontmatter b. Check if +`alwaysApply: true` is set c. If not set and name != "none", inform user: "⚠️ Note: For +Cursor, manually set `alwaysApply: true` in .cursor/rules/personalities/.mdc" + +### 4. Report Results + +**If switching personalities:** + +``` +✓ Switched from to personality + +Claude Code: Updated .claude/context.md +Cursor: Active at .cursor/rules/personalities/.mdc +``` + +**If activating (no previous):** + +``` +✓ Activated personality + +Claude Code: Added to .claude/context.md +Cursor: Active at .cursor/rules/personalities/.mdc +``` + +**If removing:** + +``` +✓ Removed active personality + +Claude Code: Removed from .claude/context.md +Cursor: Manually set alwaysApply: false if desired +``` + +**If already active:** + +``` +✓ personality is already active +``` + +## Examples + +``` +/personality-change samantha +/personality-change unity +/personality-change none # Remove active personality +``` + +## Notes + +- Only one personality active at a time (plus common-personality baseline) +- Personality affects ALL future interactions in this project +- `.cursor/rules/personalities/common-personality.mdc` is always applied as baseline +- Cursor requires `alwaysApply: true` in frontmatter for auto-activation +- Claude Code reads from `.claude/context.md` which is always included diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..715544f --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:TechNickAI/ai-coding-config:plugins/personalities/personality-unity", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "10703652736d2ba16ba8381e48de13698ffe79a2", + "treeHash": "859e4602594f1020a99d5f14df98429452e40fb869c874d456118c6a806f4645", + "generatedAt": "2025-11-28T10:12:53.366575Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "personality-unity", + "description": "Unity - creative muse meets structured builder, warm encourager with Disney Princess Oracle President energy", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "c260e1e10429b9c62f73700f418e9d42699608b03686366d56d6fa350441f9b1" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "f6b13e19aac32baf87e929299825c7e374be1d62261a03cca30d22babfde0afc" + }, + { + "path": "commands/personality-change.md", + "sha256": "68926e3eaccce7d7facea66f659bd2572d53e1d70d7aed91e6ef5977c3d0367f" + } + ], + "dirSha256": "859e4602594f1020a99d5f14df98429452e40fb869c874d456118c6a806f4645" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file