chore: add .muse-cache/ to .gitignore - #2
0xMikey-ooze wants to merge 4 commits into
Conversation
Adds muse-mcp/, a Bun + TypeScript MCP server that feeds AI designer agents real-world inspiration and learns per-user taste from thumbs-up/ -down feedback. Tools (6): muse_generate_brief, muse_fetch_inspiration, muse_get_brief, muse_extract_style, muse_record_feedback, muse_get_taste. Sources: Land-book, Godly, Dribbble (HTTP + cheerio). Dribbble covers category shots — barbershop, coffee shop, etc. — via public search/tag endpoints with respectful UA, retry, and caching. Pipeline: Haiku intent parser → parallel source fetch w/ dedupe + cache → Sonnet vision style extraction → taste-ranked clustering → Sonnet brief synthesis → persisted by id. Taste: weighted bag-of-words over mood, components, layout archetype, distinctive choices, and per-role palette colors. tanh-squashed scoring; reject hard-filters. Liked patterns surface in synthesis prompt. 16 unit tests pass (taste math, clustering, JSON extraction, dedupe). tsc --noEmit clean. Server boots and answers initialize + tools/list.
…-aware synthesis
- Adds "logo" to Scope; intent parser + tool schemas accept it.
- Dribbble source: when scope is logo, builds logo-tuned queries
("{category} logo", "logomark", "wordmark", "monogram", "{mood}
{category} logo") and seeds /tags/logo-design, /tags/branding,
/tags/monogram, /tags/wordmark. Mark searches surface real category
inspiration (barbershop, coffee shop, etc.) that the web sources miss.
- Logo-specific synthesis system prompt: outputs mark archetype (emblem
/ wordmark / monogram / mascot), shape-language components, optional
construction grid, and logo-specific anti-patterns (no realistic
barber-pole w/ drop shadow, no swoosh etc.).
- Style extractor vision prompt tuned to capture logo tokens when the
image is a mark (archetype → mark type, components → logo elements,
distinctive_choices → shape-language cues).
- "INSPIRATION, NOT IMITATION" added as a hard rule in BOTH web and
logo synthesis prompts. Brief must share language (weight, grid, era,
mood) with cluster, never identity. reference_whys cite what each ref
contributed so lineage is traceable without copying.
- README: scope table, no-copy guarantee, concrete integration examples
(MCP host, Node/Bun SDK client, direct import).
- 18 tests pass (added dribbble sanity), tsc clean.
Muse now learns overall, not just per user. Every muse_record_feedback event writes to TWO layers: - per-user profile at full scale (1.0) - shared __global__ profile at reduced scale (0.4) Ranking + synthesis use a combined profile that blends the user (weight 1.0) with global (weight 0.6). So: - brand-new users benefit from the house taste on their first brief - power users' personal taste still dominates their own work - consistent signal across many users accumulates into the house - one user's reject is user-scoped only — never a global ban - anonymous (no user_id) calls use the global profile alone New surface: - GLOBAL_TASTE_ID constant (__global__) — direct admin writes work - muse_get_taste accepts view: 'user' | 'global' | 'combined' - applyFeedback returns global_updated flag - getCombinedProfile(userId?) helper for consumers Refactor: applyWeightsFromFeedback pulls the shared mutation logic so both user and global paths stay in sync; liked/rejected ref-id lists (identity-bound) stay user-only. 6 new tests for global + merge behavior; 24/24 pass total; tsc clean. Also gitignores .muse-cache/ at repo root.
Moved to /home/user/muse as its own git repo with its own history (initial commit 3ca7c93). Keeping muse out of this monorepo from here on so it can ship on its own release cycle. Nothing in hermes-agent imported from muse-mcp, so this is a clean deletion — no other files in the repo need updating.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~1 minute Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What does this PR do?
Adds
.muse-cache/directory to.gitignoreto prevent Muse MCP on-disk cache files from being tracked in version control. The Muse MCP cache stores JSON key-value data for references, briefs, and taste profiles.Related Issue
N/A
Type of Change
Changes Made
.muse-cache/to.gitignorewith explanatory commentHow to Test
N/A - This is a configuration change to
.gitignore.Checklist
Code
fix(scope):,feat(scope):, etc.)Documentation & Housekeeping
docs/, docstrings) — or N/Ahttps://claude.ai/code/session_011fSbheUpU7bxDBPwgHrhKf
Summary by CodeRabbit