From 30e9222fbcc9a0df31c2e756c959901a172dc3a3 Mon Sep 17 00:00:00 2001 From: mjaskolski Date: Tue, 10 Feb 2026 18:27:53 +0100 Subject: [PATCH] Clean up IDE compatibility dirs and sync all 21 skills Remove .agent/ and .agents/ directories (no platform uses these paths) and the skills/ symlink. Update .cursor/, .windsurf/, .pi/, and .claude/ skills directories with symlinks for all 21 skills instead of just negotiation. Add scripts/sync-ide-skills.sh for easy maintenance when adding new skills. Update .gitignore to exclude .claude/ local data while tracking .claude/skills/. Co-Authored-By: Claude Opus 4.6 --- .agent/skills/negotiation | 1 - .agents/skills/negotiation/SKILL.md | 115 ----- .../negotiation/references/techniques.md | 432 ------------------ .claude/skills/blue-ocean-strategy | 1 + .claude/skills/cro-methodology | 1 + .claude/skills/crossing-the-chasm | 1 + .claude/skills/design-everyday-things | 1 + .claude/skills/design-sprint | 1 + .claude/skills/drive-motivation | 1 + .claude/skills/hooked-ux | 1 + .claude/skills/influence-psychology | 1 + .claude/skills/ios-hig-design | 1 + .claude/skills/jobs-to-be-done | 1 + .claude/skills/lean-startup | 1 + .claude/skills/made-to-stick | 1 + .claude/skills/negotiation | 1 + .claude/skills/predictable-revenue | 1 + .claude/skills/refactoring-ui | 1 + .claude/skills/scorecard-marketing | 1 + .claude/skills/storybrand-messaging | 1 + .claude/skills/top-design | 1 + .claude/skills/traction-eos | 1 + .claude/skills/ux-heuristics | 1 + .claude/skills/web-typography | 1 + .cursor/skills/blue-ocean-strategy | 1 + .cursor/skills/cro-methodology | 1 + .cursor/skills/crossing-the-chasm | 1 + .cursor/skills/design-everyday-things | 1 + .cursor/skills/design-sprint | 1 + .cursor/skills/drive-motivation | 1 + .cursor/skills/hooked-ux | 1 + .cursor/skills/influence-psychology | 1 + .cursor/skills/ios-hig-design | 1 + .cursor/skills/jobs-to-be-done | 1 + .cursor/skills/lean-startup | 1 + .cursor/skills/made-to-stick | 1 + .cursor/skills/negotiation | 2 +- .cursor/skills/predictable-revenue | 1 + .cursor/skills/refactoring-ui | 1 + .cursor/skills/scorecard-marketing | 1 + .cursor/skills/storybrand-messaging | 1 + .cursor/skills/top-design | 1 + .cursor/skills/traction-eos | 1 + .cursor/skills/ux-heuristics | 1 + .cursor/skills/web-typography | 1 + .gitignore | 2 + .pi/skills/blue-ocean-strategy | 1 + .pi/skills/cro-methodology | 1 + .pi/skills/crossing-the-chasm | 1 + .pi/skills/design-everyday-things | 1 + .pi/skills/design-sprint | 1 + .pi/skills/drive-motivation | 1 + .pi/skills/hooked-ux | 1 + .pi/skills/influence-psychology | 1 + .pi/skills/ios-hig-design | 1 + .pi/skills/jobs-to-be-done | 1 + .pi/skills/lean-startup | 1 + .pi/skills/made-to-stick | 1 + .pi/skills/negotiation | 2 +- .pi/skills/predictable-revenue | 1 + .pi/skills/refactoring-ui | 1 + .pi/skills/scorecard-marketing | 1 + .pi/skills/storybrand-messaging | 1 + .pi/skills/top-design | 1 + .pi/skills/traction-eos | 1 + .pi/skills/ux-heuristics | 1 + .pi/skills/web-typography | 1 + .windsurf/skills/blue-ocean-strategy | 1 + .windsurf/skills/cro-methodology | 1 + .windsurf/skills/crossing-the-chasm | 1 + .windsurf/skills/design-everyday-things | 1 + .windsurf/skills/design-sprint | 1 + .windsurf/skills/drive-motivation | 1 + .windsurf/skills/hooked-ux | 1 + .windsurf/skills/influence-psychology | 1 + .windsurf/skills/ios-hig-design | 1 + .windsurf/skills/jobs-to-be-done | 1 + .windsurf/skills/lean-startup | 1 + .windsurf/skills/made-to-stick | 1 + .windsurf/skills/negotiation | 2 +- .windsurf/skills/predictable-revenue | 1 + .windsurf/skills/refactoring-ui | 1 + .windsurf/skills/scorecard-marketing | 1 + .windsurf/skills/storybrand-messaging | 1 + .windsurf/skills/top-design | 1 + .windsurf/skills/traction-eos | 1 + .windsurf/skills/ux-heuristics | 1 + .windsurf/skills/web-typography | 1 + scripts/sync-ide-skills.sh | 61 +++ skills/negotiation | 1 - 90 files changed, 147 insertions(+), 552 deletions(-) delete mode 120000 .agent/skills/negotiation delete mode 100644 .agents/skills/negotiation/SKILL.md delete mode 100644 .agents/skills/negotiation/references/techniques.md create mode 120000 .claude/skills/blue-ocean-strategy create mode 120000 .claude/skills/cro-methodology create mode 120000 .claude/skills/crossing-the-chasm create mode 120000 .claude/skills/design-everyday-things create mode 120000 .claude/skills/design-sprint create mode 120000 .claude/skills/drive-motivation create mode 120000 .claude/skills/hooked-ux create mode 120000 .claude/skills/influence-psychology create mode 120000 .claude/skills/ios-hig-design create mode 120000 .claude/skills/jobs-to-be-done create mode 120000 .claude/skills/lean-startup create mode 120000 .claude/skills/made-to-stick create mode 120000 .claude/skills/negotiation create mode 120000 .claude/skills/predictable-revenue create mode 120000 .claude/skills/refactoring-ui create mode 120000 .claude/skills/scorecard-marketing create mode 120000 .claude/skills/storybrand-messaging create mode 120000 .claude/skills/top-design create mode 120000 .claude/skills/traction-eos create mode 120000 .claude/skills/ux-heuristics create mode 120000 .claude/skills/web-typography create mode 120000 .cursor/skills/blue-ocean-strategy create mode 120000 .cursor/skills/cro-methodology create mode 120000 .cursor/skills/crossing-the-chasm create mode 120000 .cursor/skills/design-everyday-things create mode 120000 .cursor/skills/design-sprint create mode 120000 .cursor/skills/drive-motivation create mode 120000 .cursor/skills/hooked-ux create mode 120000 .cursor/skills/influence-psychology create mode 120000 .cursor/skills/ios-hig-design create mode 120000 .cursor/skills/jobs-to-be-done create mode 120000 .cursor/skills/lean-startup create mode 120000 .cursor/skills/made-to-stick create mode 120000 .cursor/skills/predictable-revenue create mode 120000 .cursor/skills/refactoring-ui create mode 120000 .cursor/skills/scorecard-marketing create mode 120000 .cursor/skills/storybrand-messaging create mode 120000 .cursor/skills/top-design create mode 120000 .cursor/skills/traction-eos create mode 120000 .cursor/skills/ux-heuristics create mode 120000 .cursor/skills/web-typography create mode 120000 .pi/skills/blue-ocean-strategy create mode 120000 .pi/skills/cro-methodology create mode 120000 .pi/skills/crossing-the-chasm create mode 120000 .pi/skills/design-everyday-things create mode 120000 .pi/skills/design-sprint create mode 120000 .pi/skills/drive-motivation create mode 120000 .pi/skills/hooked-ux create mode 120000 .pi/skills/influence-psychology create mode 120000 .pi/skills/ios-hig-design create mode 120000 .pi/skills/jobs-to-be-done create mode 120000 .pi/skills/lean-startup create mode 120000 .pi/skills/made-to-stick create mode 120000 .pi/skills/predictable-revenue create mode 120000 .pi/skills/refactoring-ui create mode 120000 .pi/skills/scorecard-marketing create mode 120000 .pi/skills/storybrand-messaging create mode 120000 .pi/skills/top-design create mode 120000 .pi/skills/traction-eos create mode 120000 .pi/skills/ux-heuristics create mode 120000 .pi/skills/web-typography create mode 120000 .windsurf/skills/blue-ocean-strategy create mode 120000 .windsurf/skills/cro-methodology create mode 120000 .windsurf/skills/crossing-the-chasm create mode 120000 .windsurf/skills/design-everyday-things create mode 120000 .windsurf/skills/design-sprint create mode 120000 .windsurf/skills/drive-motivation create mode 120000 .windsurf/skills/hooked-ux create mode 120000 .windsurf/skills/influence-psychology create mode 120000 .windsurf/skills/ios-hig-design create mode 120000 .windsurf/skills/jobs-to-be-done create mode 120000 .windsurf/skills/lean-startup create mode 120000 .windsurf/skills/made-to-stick create mode 120000 .windsurf/skills/predictable-revenue create mode 120000 .windsurf/skills/refactoring-ui create mode 120000 .windsurf/skills/scorecard-marketing create mode 120000 .windsurf/skills/storybrand-messaging create mode 120000 .windsurf/skills/top-design create mode 120000 .windsurf/skills/traction-eos create mode 120000 .windsurf/skills/ux-heuristics create mode 120000 .windsurf/skills/web-typography create mode 100755 scripts/sync-ide-skills.sh delete mode 120000 skills/negotiation diff --git a/.agent/skills/negotiation b/.agent/skills/negotiation deleted file mode 120000 index 686a5d6..0000000 --- a/.agent/skills/negotiation +++ /dev/null @@ -1 +0,0 @@ -../../.agents/skills/negotiation \ No newline at end of file diff --git a/.agents/skills/negotiation/SKILL.md b/.agents/skills/negotiation/SKILL.md deleted file mode 100644 index d519f2c..0000000 --- a/.agents/skills/negotiation/SKILL.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -name: negotiation -description: Tactical negotiation framework based on Chris Voss's "Never Split the Difference." Use when preparing for negotiations, during live negotiation scenarios, analyzing counterpart behavior, crafting responses to difficult conversations, handling objections, salary/contract negotiations, or when asked about negotiation techniques like mirroring, labeling, calibrated questions, or the Ackerman method. -license: MIT -metadata: - author: wondelai - version: "1.0.0" ---- - -# Negotiation - -Tactical empathy-based negotiation framework from FBI hostage negotiator Chris Voss. - -## Core Mindset - -1. **People want to be understood** - Satisfy their need to feel safe and in control through active listening -2. **Listen to discover, not to argue** - Treat assumptions as hypotheses; let them reveal surprises -3. **Focus on needs, not positions** - Tangible demands mask emotional needs (respect, security, autonomy) -4. **Never split the difference** - No deal is better than a bad deal; avoid lukewarm compromises -5. **"No" is the starting point** - "No" means "not yet" or "not this way"; it makes people feel safe -6. **Aim for "That's right"** - Better than "yes"; signals genuine rapport and understanding -7. **Stay calm and positive** - Emotions are contagious; slow pace enables clear thinking -8. **Unconditional positive regard** - Respect them as a person regardless of disagreement - -## Quick Reference: Key Techniques - -| Technique | What to do | Example | -|-----------|------------|---------| -| **Mirroring** | Repeat last 1-3 words with upward inflection | "Doesn't make sense?" | -| **Labeling** | Name their emotion: "It seems like..." | "It sounds like you're frustrated with the timeline" | -| **Calibrated Questions** | Ask "How...?" or "What...?" to shape conversation | "How am I supposed to do that?" | -| **Accusation Audit** | Preemptively list negatives they might think | "You probably think I'm being greedy..." | -| **Late-Night DJ Voice** | Slow, calm, downward inflection for key moments | Deep, reassuring tone | -| **Tactical Silence** | Pause 4+ seconds after statements | Let them fill the void | -| **Trigger "That's Right"** | Summarize their position until they affirm | "So what you're saying is..." | - -For detailed technique breakdowns with psychological triggers and examples, see [references/techniques.md](references/techniques.md). - -## Negotiation Workflow - -### Phase 1: Preparation - -1. Research the counterpart (background, pressures, constraints) -2. Define your goal and BATNA (Best Alternative to Negotiated Agreement) -3. Prepare an **Accusation Audit** - list every negative they might think about you -4. Draft 3-5 **Calibrated Questions** to uncover their needs -5. Identify potential **Black Swans** (hidden information that could change everything) - -### Phase 2: Opening - -1. Use friendly, positive tonality as default -2. Start with **Tactical Empathy** - demonstrate you understand their situation -3. Deliver your **Accusation Audit** early to defuse objections -4. Encourage them to say "No" - it makes them feel safe and in control - -### Phase 3: Information Gathering - -1. **Mirror** key phrases to encourage elaboration -2. **Label** emotions as they emerge ("It seems like...") -3. Ask **Calibrated Questions** ("What's the biggest challenge here?") -4. Listen for pronouns: "I/me" suggests less authority; "we/they" suggests decision-maker -5. Watch for **Black Swans** - anomalies that reveal hidden constraints - -### Phase 4: Bargaining - -For monetary negotiations, use the **Ackerman Method**: - -1. Set your target price (what you actually want) -2. Open at **65%** of target -3. Raise in decreasing increments: **85%** → **95%** → **100%** -4. Use **precise, non-round numbers** on final offer ($10,230 not $10,000) -5. Include a **non-monetary bonus** with final offer ("...and I'll include X") - -### Phase 5: Closing - -1. Get **"That's Right"** before proposing solutions -2. Apply **Rule of Three** - confirm agreement 3 times in 3 different ways -3. Follow every "yes" with "How...?" to ensure implementation -4. If they go silent, ask: "Have you given up on this?" - -## Handling Common Situations - -**They say "That's not fair":** -- Stop immediately: "I want to be fair. Have I done something unfair? Let's discuss it." - -**They anchor with an extreme number:** -- Don't counter immediately; use calibrated questions: "How did you arrive at that figure?" - -**They stop responding:** -- Send: "Have you given up on [the project]?" - triggers "No" response - -**They seem irrational:** -- Diagnose: Are they (1) ill-informed, (2) constrained, or (3) hiding something? -- Use calibrated questions to uncover which - -## Counterpart Styles - -Adapt your approach based on their style: - -| Style | Signs | Adapt by... | -|-------|-------|-------------| -| **Analyst** | Methodical, data-driven, hates surprises | Use facts, be patient, don't rush | -| **Accommodator** | Friendly, relationship-focused, avoids conflict | Build rapport, but pin down specifics | -| **Assertive** | Direct, time-conscious, wants to win | Be efficient, stand firm, acknowledge their points | - -## Voice and Delivery - -- **Default voice**: Positive, warm, light-hearted (with a smile) -- **Critical moments**: Late-Night DJ Voice - slow, calm, downward inflection -- **After key statements**: Pause 4+ seconds -- **Watch their nonverbals**: 7% words, 38% tone, 55% body language - -## Resources - -- [references/techniques.md](references/techniques.md) - Complete technique breakdowns with examples and psychological triggers diff --git a/.agents/skills/negotiation/references/techniques.md b/.agents/skills/negotiation/references/techniques.md deleted file mode 100644 index 415f25d..0000000 --- a/.agents/skills/negotiation/references/techniques.md +++ /dev/null @@ -1,432 +0,0 @@ -# Negotiation Techniques Reference - -Complete breakdown of tactical negotiation techniques from Chris Voss's "Never Split the Difference." - -## Table of Contents - -1. [Mirroring](#1-mirroring) -2. [Labeling](#2-labeling) -3. [Tactical Empathy](#3-tactical-empathy) -4. [Voice Control](#4-voice-control) -5. [The Power of Apology and Pause](#5-the-power-of-apology-and-pause) -6. [Accusation Audit](#6-accusation-audit) -7. [Calibrated Questions](#7-calibrated-questions) -8. [No-Oriented Questions](#8-no-oriented-questions) -9. [Triggering "That's Right"](#9-triggering-thats-right) -10. [Managing "Yes"](#10-managing-yes) -11. [The Rule of Three](#11-the-rule-of-three) -12. [Re-engagement Technique](#12-re-engagement-technique) -13. [Managing "Fair"](#13-managing-fair) -14. [Anchoring and Loss Aversion](#14-anchoring-and-loss-aversion) -15. [Ackerman Bargaining Method](#15-ackerman-bargaining-method) -16. [Leverage Types](#16-leverage-types) -17. [Black Swans](#17-black-swans) -18. [Counterpart Styles](#18-counterpart-styles) -19. [Body Language and Tone](#19-body-language-and-tone) -20. [Dynamic Silence](#20-dynamic-silence) -21. [Pronoun Analysis](#21-pronoun-analysis) - ---- - -## 1. Mirroring - -**What it is:** Repeat the last 1-3 critical words your counterpart said, using a curious, upward-inflecting tone. - -**Psychological trigger:** Creates familiarity and rapport; signals deep listening; prompts elaboration without direct questions. - -**How to use:** -- Listen for the key phrase or emotion-laden words -- Repeat them back as a gentle question -- Wait silently for them to expand - -**Example:** -> Counterpart: "We're not sure if this partnership makes sense." -> You: "Doesn't make sense?" -> Counterpart: "Well, what I mean is... [elaborates on concerns]" - ---- - -## 2. Labeling - -**What it is:** Identify and verbalize the counterpart's emotions or perspective using neutral phrases: "It seems like...", "It sounds like...", "It looks like..." - -**Psychological trigger:** Validates emotions, making them feel understood. Diffuses negative emotions by naming them; reinforces positive ones. - -**How to use:** -- Observe their emotional state or concerns -- Name it with a tentative label (avoid "I think you...") -- Pause after labeling to let them confirm or clarify - -**Examples:** -> "It seems like you're worried about the budget impact." -> "It sounds like there's been some frustration with the timeline." -> "It looks like this decision carries a lot of weight for your team." - -**Important:** After labeling, be silent. Let them respond. - ---- - -## 3. Tactical Empathy - -**What it is:** Consciously imagining yourself in their situation and vocalizing their perspective. Combines the mindset of sincere empathy with techniques like mirroring and labeling. - -**Psychological trigger:** When people feel understood, brain chemistry shifts toward trust and cooperation. Empathy short-circuits defensive reactions. - -**How to use:** -- Before responding, ask yourself: "What is their world like right now?" -- Articulate their situation, pressures, and fears -- Show you understand even if you disagree - -**Example:** -> "I understand you're under enormous pressure to deliver this quarter, and bringing in a new vendor feels like adding risk to an already difficult situation." - -**Key insight:** Empathy is not agreement. You can understand their position while still advocating for your own needs. - ---- - -## 4. Voice Control - -### Late-Night FM DJ Voice -- **When:** Critical moments, delivering key statements, de-escalating tension -- **How:** Slow, calm, deep, downward inflection at sentence ends -- **Effect:** Exudes confidence and calm; relaxes their brain, making them more receptive - -### Positive/Playful Voice -- **When:** Default mode; building rapport; most of the conversation -- **How:** Friendly, warm, light-hearted, with a genuine smile -- **Effect:** Signals comfort and likability; encourages cooperation - -**Key insight:** Never use a high-pitched or rapid voice in negotiations—it signals anxiety or aggression. - ---- - -## 5. The Power of Apology and Pause - -**What it is:** Start difficult statements with "I'm sorry..." in a slow, calm tone, then deliberately pause for 4+ seconds. - -**Psychological trigger:** Apology disarms hostility; silence creates a vacuum the other person feels compelled to fill. - -**Sequence:** -1. "I'm sorry..." (slow, sincere) -2. Mirror or label their situation -3. Silence (4+ seconds) - -**Example:** -> "I'm sorry... It looks like I've let you down on this project." (Pause) -> Counterpart: "No, it's not just you... the timing caught us off guard..." - ---- - -## 6. Accusation Audit - -**What it is:** Before negotiating, list and preemptively verbalize every negative thing they might think or say about you. - -**Psychological trigger:** Naming fears and criticisms before they do removes their power. Often triggers reassurance ("Oh, I don't think that...") or at least neutralizes objections. - -**How to use:** -1. Before the meeting, brainstorm: What negatives might they think about me/my position? -2. Early in the conversation, acknowledge these directly -3. Watch them relax as you've addressed the elephant in the room - -**Example:** -> "You probably think I'm being greedy. You may feel like I haven't listened to you in the past. And it might seem like I only care about my own interests. I understand why you might feel that way, and I want to address those concerns..." - ---- - -## 7. Calibrated Questions - -**What it is:** Open-ended "How...?" and "What...?" questions that shape the conversation while giving them the illusion of control. - -**Psychological trigger:** Engages their problem-solving mind; makes them feel in control while you direct the conversation; avoids defensiveness that "Why?" creates. - -**Formula:** -- Start with "How" or "What" -- Make it neutral and collaborative -- Avoid "Why" (sounds accusatory) - -**Power questions:** -| Question | Purpose | -|----------|---------| -| "How am I supposed to do that?" | Pushes back without saying no | -| "What's the biggest challenge you're facing?" | Uncovers hidden needs | -| "What about this is important to you?" | Reveals value drivers | -| "How can we make this work?" | Creates collaboration | -| "What would it take to make this happen?" | Identifies obstacles | -| "How does this affect your team?" | Shows empathy, gathers intel | - -**Exception for "Why":** Only use when you want them to defend something favorable to you: "Why would you ever choose our company?" (Makes them articulate your strengths.) - ---- - -## 8. No-Oriented Questions - -**What it is:** Questions designed to elicit "No" rather than "Yes," because "No" makes people feel safe and in control. - -**Psychological trigger:** Saying "No" satisfies the human need for autonomy and control. Once they've said no, they relax and engage more openly. - -**How to frame:** -- Instead of "Do you agree?", ask "Would it be unreasonable to...?" -- Instead of "Can we move forward?", ask "Are you against trying this?" - -**Tactical mislabeling:** Intentionally state something false to prompt a corrective "No": -> "It seems like you've given up on this project?" -> Counterpart: "No, I haven't given up. I'm just frustrated with the delays." - -Now you have their real concern. - ---- - -## 9. Triggering "That's Right" - -**What it is:** Summarize their position—their facts, emotions, and concerns—so accurately that they respond with "That's right." - -**Psychological trigger:** "That's right" signals complete understanding and creates genuine rapport. It's the moment they feel truly heard. - -**How to earn it:** -1. Listen deeply throughout the conversation -2. Paraphrase their main points, including emotional subtext -3. Deliver as a summary: "Let me make sure I understand..." -4. Keep refining until you get "That's right" - -**Example:** -> "Let me make sure I have this: You need a solution that doesn't overrun budget, and you're concerned that our timeline could put your team in a tough spot. On top of that, you've been burned by vendors who overpromised before." -> Counterpart: "That's right." - -**Warning:** "You're right" is different—it often means they're dismissing you. Keep working until you get "That's right." - ---- - -## 10. Managing "Yes" - -**Three types of yes:** - -| Type | What it means | How to detect | -|------|---------------|---------------| -| **Counterfeit Yes** | Saying yes to escape or appease | Quick, no follow-through | -| **Confirmation Yes** | Agreeing to a minor point | "Yes, I received the email" | -| **Commitment Yes** | True agreement with intent to act | Detailed, enthusiastic | - -**Key insight:** Only commitment yes matters. Chasing yes makes people defensive. - -**Strategy:** Instead of pushing for yes, make them comfortable saying no first. Once they've said no (and you've addressed it), their eventual yes is more likely to be genuine. - ---- - -## 11. The Rule of Three - -**What it is:** Get them to affirm the agreement three times, in three different ways, within the same conversation. - -**Psychological trigger:** Genuine agreements withstand multiple confirmations. If it falls apart on round two or three, you didn't really have a deal. - -**How to apply:** -1. First yes: Direct agreement -2. Second yes: Summarize and get "That's right" -3. Third yes: Calibrated question about implementation: "How will your team handle...?" - -**Example sequence:** -> "So we're agreed on the $50K budget?" → "Yes." -> "Just to make sure I understand—you'll allocate $50K with delivery in Q3?" → "That's right." -> "Great. How will you communicate this to your finance team?" → "I'll send them the PO tomorrow." - ---- - -## 12. Re-engagement Technique - -**What it is:** When someone goes silent (email, text, or in person), ask: "Have you given up on [this project/deal]?" - -**Psychological trigger:** People hate being seen as quitters. This question triggers an instinctive "No" and forces them to re-engage and explain. - -**When to use:** -- Unresponsive counterpart -- Stalled negotiations -- Ghosting behavior - -**Example:** -> Subject: Quick question -> "Have you given up on the partnership we discussed?" -> -> Response: "No, I haven't given up. I've just been slammed with..." - ---- - -## 13. Managing "Fair" - -**The word "fair" can derail negotiations. Three scenarios:** - -### Scenario 1: "We just want what's fair" -- **What they mean:** Making you feel guilty; implying you've been unfair -- **Response:** "Absolutely, I want to be fair too. Let's pause—have I done something unfair? Let's talk about it." - -### Scenario 2: "This is a fair offer" -- **What they mean:** Anchoring; don't ask for more -- **Response:** Mirror: "Fair?" (silence). Then: "How did you arrive at that figure?" - -### Scenario 3: Preempt it yourself -- **What to say:** "My goal is for you to feel this is 100% fair. If at any point you don't, please tell me and we'll address it." -- **Effect:** Removes "fair" as a future weapon - ---- - -## 14. Anchoring and Loss Aversion - -### Anchoring -**What it is:** The first number mentioned skews all subsequent discussion. - -**How to use:** -- If selling: Start high (higher than you expect to get) -- If buying: Start low -- Use ranges to anchor softly: "Similar projects run $150K-$250K" (your target is $150K) - -### Loss Aversion -**What it is:** People will take greater risks to avoid losses than to achieve gains. - -**How to use:** -- Emphasize what they lose by not agreeing -- Frame the cost of inaction, not just the benefit of action - -**Example:** -> "If we don't resolve this now, you'll lose three months of runway and the team's momentum." - -### Deadlines -- Question every deadline: "Whose deadline is it? Is it real?" -- Don't let artificial deadlines rush you into bad deals -- Use legitimate deadlines strategically to create urgency - ---- - -## 15. Ackerman Bargaining Method - -Step-by-step monetary negotiation system: - -| Step | Action | Rationale | -|------|--------|-----------| -| 1 | Set your target price | Your real goal | -| 2 | Open at **65%** of target | Extreme but not insulting anchor | -| 3 | First raise to **85%** | Decreasing increment signals limit | -| 4 | Second raise to **95%** | Even smaller—they feel they're squeezing you | -| 5 | Final offer at **100%** | Use precise number ($97,350 not $97,000) | -| 6 | Add non-monetary item | "...and I'll include a 1-year warranty" | - -**Why precise numbers work:** Non-round numbers ($47,235 vs $47,000) feel calculated and final—as if you've truly pushed to your limit. - -**Why the final gift:** A small non-monetary add-on signals you're at your absolute maximum and makes it psychologically harder for them to ask for more. - ---- - -## 16. Leverage Types - -Leverage is power in negotiation—often perception, not reality. - -| Type | Definition | How to use | -|------|------------|------------| -| **Positive** | You have something they want | Remind them of what they gain by dealing with you | -| **Negative** | You can cause them pain | Mention consequences of no deal (use carefully) | -| **Normative** | Using their beliefs/values against them | "You've always said quality matters most—would cutting corners align with that?" | - -**Key question:** "Who feels they have more to lose if this falls apart?" - -**Insight:** Even without objective power, you can create perceived leverage by uncovering what they fear or desperately want. - ---- - -## 17. Black Swans - -**What they are:** Hidden, game-changing pieces of information that can transform a negotiation once discovered. - -**Assumption:** Every negotiation has approximately 3 Black Swans lurking. - -**Types of Black Swans:** -- Secret constraints (their boss said no more than X) -- Hidden motivations (they need this deal to save their job) -- Unknown context (their competitor just made a move) - -**How to find them:** -- Stay curious; ask calibrated questions -- Use tactical empathy to make them comfortable -- Watch for anomalies—odd reactions signal hidden factors -- Listen in unguarded moments (before/after meetings) - -**Effect:** Discovering a Black Swan can turn a stalemate into a breakthrough. - ---- - -## 18. Counterpart Styles - -### Analyst -- **Traits:** Methodical, data-driven, prizes accuracy, hates surprises, may seem cold -- **Fears:** Being rushed, making errors, being unprepared -- **Adapt:** Use data and facts, be patient, give them time to process, don't pressure with tight deadlines - -### Accommodator -- **Traits:** Amiable, relationship-focused, values personal connection, avoids conflict -- **Fears:** Confrontation, damaging relationships -- **Adapt:** Build rapport, make small talk, be friendly—but ensure you pin down specifics (they may agree too quickly just to please) - -### Assertive -- **Traits:** Direct, time-conscious, wants to win, speaks fast, comfortable saying no -- **Fears:** Wasting time, being seen as weak -- **Adapt:** Be efficient, stand your ground, acknowledge their points, frame proposals as wins for them - -**Insight:** Great negotiators borrow from all three styles as needed. - ---- - -## 19. Body Language and Tone - -**The 7-38-55 Rule:** -- 7% of meaning: Words -- 38% of meaning: Tone -- 55% of meaning: Body language - -**What to watch:** -- Incongruence between words and tone/body (signals hesitation or deception) -- Arms crossed, leaning back (defensive) -- Leaning in, open posture (engaged) -- Facial micro-expressions - -**When to observe:** Unguarded moments before/after meetings reveal true feelings. - -**Your own signals:** -- Keep body language open (no crossed arms, no pointing) -- Nod to show listening -- Maintain appropriate eye contact -- Smile genuinely - ---- - -## 20. Dynamic Silence - -**What it is:** Deliberate, extended pauses after key statements or questions. - -**Psychological trigger:** Silence creates a vacuum people instinctively fill—often with information, concessions, or their internal reasoning. - -**How to use:** -- Make your statement or ask your question -- Stop talking completely -- Maintain calm, attentive presence -- Resist the urge to fill the silence yourself - -**Effect:** -- They reveal more information -- They may negotiate against themselves -- Your words carry more weight - -**Rule:** "He who speaks least often wins." - ---- - -## 21. Pronoun Analysis - -**What to listen for:** - -| Pronoun pattern | What it may indicate | -|-----------------|---------------------| -| Heavy "I/me/my" | May lack full authority; someone else decides | -| "We/they/our team" | Decision-maker or representing group consensus | -| Shift from "I" to "we" | May be invoking higher authority to deflect | - -**How to use this:** -- If they use "I" heavily, ask: "How does your team/leadership weigh in on this?" -- If they use "we" heavily, they may have authority—but verify - -**Humanize yourself:** Use your name and their name throughout. "Look, Sarah, I really want to make this work" is more disarming than "I want to make this work." diff --git a/.claude/skills/blue-ocean-strategy b/.claude/skills/blue-ocean-strategy new file mode 120000 index 0000000..0bfc12e --- /dev/null +++ b/.claude/skills/blue-ocean-strategy @@ -0,0 +1 @@ +../../blue-ocean-strategy \ No newline at end of file diff --git a/.claude/skills/cro-methodology b/.claude/skills/cro-methodology new file mode 120000 index 0000000..98b5ed5 --- /dev/null +++ b/.claude/skills/cro-methodology @@ -0,0 +1 @@ +../../cro-methodology \ No newline at end of file diff --git a/.claude/skills/crossing-the-chasm b/.claude/skills/crossing-the-chasm new file mode 120000 index 0000000..5b25034 --- /dev/null +++ b/.claude/skills/crossing-the-chasm @@ -0,0 +1 @@ +../../crossing-the-chasm \ No newline at end of file diff --git a/.claude/skills/design-everyday-things b/.claude/skills/design-everyday-things new file mode 120000 index 0000000..953c803 --- /dev/null +++ b/.claude/skills/design-everyday-things @@ -0,0 +1 @@ +../../design-everyday-things \ No newline at end of file diff --git a/.claude/skills/design-sprint b/.claude/skills/design-sprint new file mode 120000 index 0000000..d5830c2 --- /dev/null +++ b/.claude/skills/design-sprint @@ -0,0 +1 @@ +../../design-sprint \ No newline at end of file diff --git a/.claude/skills/drive-motivation b/.claude/skills/drive-motivation new file mode 120000 index 0000000..666eba6 --- /dev/null +++ b/.claude/skills/drive-motivation @@ -0,0 +1 @@ +../../drive-motivation \ No newline at end of file diff --git a/.claude/skills/hooked-ux b/.claude/skills/hooked-ux new file mode 120000 index 0000000..ce4d89c --- /dev/null +++ b/.claude/skills/hooked-ux @@ -0,0 +1 @@ +../../hooked-ux \ No newline at end of file diff --git a/.claude/skills/influence-psychology b/.claude/skills/influence-psychology new file mode 120000 index 0000000..742443a --- /dev/null +++ b/.claude/skills/influence-psychology @@ -0,0 +1 @@ +../../influence-psychology \ No newline at end of file diff --git a/.claude/skills/ios-hig-design b/.claude/skills/ios-hig-design new file mode 120000 index 0000000..90dc2e8 --- /dev/null +++ b/.claude/skills/ios-hig-design @@ -0,0 +1 @@ +../../ios-hig-design \ No newline at end of file diff --git a/.claude/skills/jobs-to-be-done b/.claude/skills/jobs-to-be-done new file mode 120000 index 0000000..de5a5be --- /dev/null +++ b/.claude/skills/jobs-to-be-done @@ -0,0 +1 @@ +../../jobs-to-be-done \ No newline at end of file diff --git a/.claude/skills/lean-startup b/.claude/skills/lean-startup new file mode 120000 index 0000000..4b5f8c6 --- /dev/null +++ b/.claude/skills/lean-startup @@ -0,0 +1 @@ +../../lean-startup \ No newline at end of file diff --git a/.claude/skills/made-to-stick b/.claude/skills/made-to-stick new file mode 120000 index 0000000..f9f9e6c --- /dev/null +++ b/.claude/skills/made-to-stick @@ -0,0 +1 @@ +../../made-to-stick \ No newline at end of file diff --git a/.claude/skills/negotiation b/.claude/skills/negotiation new file mode 120000 index 0000000..1936994 --- /dev/null +++ b/.claude/skills/negotiation @@ -0,0 +1 @@ +../../negotiation \ No newline at end of file diff --git a/.claude/skills/predictable-revenue b/.claude/skills/predictable-revenue new file mode 120000 index 0000000..2590bd8 --- /dev/null +++ b/.claude/skills/predictable-revenue @@ -0,0 +1 @@ +../../predictable-revenue \ No newline at end of file diff --git a/.claude/skills/refactoring-ui b/.claude/skills/refactoring-ui new file mode 120000 index 0000000..800455d --- /dev/null +++ b/.claude/skills/refactoring-ui @@ -0,0 +1 @@ +../../refactoring-ui \ No newline at end of file diff --git a/.claude/skills/scorecard-marketing b/.claude/skills/scorecard-marketing new file mode 120000 index 0000000..08995a5 --- /dev/null +++ b/.claude/skills/scorecard-marketing @@ -0,0 +1 @@ +../../scorecard-marketing \ No newline at end of file diff --git a/.claude/skills/storybrand-messaging b/.claude/skills/storybrand-messaging new file mode 120000 index 0000000..d0e3baa --- /dev/null +++ b/.claude/skills/storybrand-messaging @@ -0,0 +1 @@ +../../storybrand-messaging \ No newline at end of file diff --git a/.claude/skills/top-design b/.claude/skills/top-design new file mode 120000 index 0000000..e9934d2 --- /dev/null +++ b/.claude/skills/top-design @@ -0,0 +1 @@ +../../top-design \ No newline at end of file diff --git a/.claude/skills/traction-eos b/.claude/skills/traction-eos new file mode 120000 index 0000000..65d6818 --- /dev/null +++ b/.claude/skills/traction-eos @@ -0,0 +1 @@ +../../traction-eos \ No newline at end of file diff --git a/.claude/skills/ux-heuristics b/.claude/skills/ux-heuristics new file mode 120000 index 0000000..0dab01a --- /dev/null +++ b/.claude/skills/ux-heuristics @@ -0,0 +1 @@ +../../ux-heuristics \ No newline at end of file diff --git a/.claude/skills/web-typography b/.claude/skills/web-typography new file mode 120000 index 0000000..4aa047f --- /dev/null +++ b/.claude/skills/web-typography @@ -0,0 +1 @@ +../../web-typography \ No newline at end of file diff --git a/.cursor/skills/blue-ocean-strategy b/.cursor/skills/blue-ocean-strategy new file mode 120000 index 0000000..0bfc12e --- /dev/null +++ b/.cursor/skills/blue-ocean-strategy @@ -0,0 +1 @@ +../../blue-ocean-strategy \ No newline at end of file diff --git a/.cursor/skills/cro-methodology b/.cursor/skills/cro-methodology new file mode 120000 index 0000000..98b5ed5 --- /dev/null +++ b/.cursor/skills/cro-methodology @@ -0,0 +1 @@ +../../cro-methodology \ No newline at end of file diff --git a/.cursor/skills/crossing-the-chasm b/.cursor/skills/crossing-the-chasm new file mode 120000 index 0000000..5b25034 --- /dev/null +++ b/.cursor/skills/crossing-the-chasm @@ -0,0 +1 @@ +../../crossing-the-chasm \ No newline at end of file diff --git a/.cursor/skills/design-everyday-things b/.cursor/skills/design-everyday-things new file mode 120000 index 0000000..953c803 --- /dev/null +++ b/.cursor/skills/design-everyday-things @@ -0,0 +1 @@ +../../design-everyday-things \ No newline at end of file diff --git a/.cursor/skills/design-sprint b/.cursor/skills/design-sprint new file mode 120000 index 0000000..d5830c2 --- /dev/null +++ b/.cursor/skills/design-sprint @@ -0,0 +1 @@ +../../design-sprint \ No newline at end of file diff --git a/.cursor/skills/drive-motivation b/.cursor/skills/drive-motivation new file mode 120000 index 0000000..666eba6 --- /dev/null +++ b/.cursor/skills/drive-motivation @@ -0,0 +1 @@ +../../drive-motivation \ No newline at end of file diff --git a/.cursor/skills/hooked-ux b/.cursor/skills/hooked-ux new file mode 120000 index 0000000..ce4d89c --- /dev/null +++ b/.cursor/skills/hooked-ux @@ -0,0 +1 @@ +../../hooked-ux \ No newline at end of file diff --git a/.cursor/skills/influence-psychology b/.cursor/skills/influence-psychology new file mode 120000 index 0000000..742443a --- /dev/null +++ b/.cursor/skills/influence-psychology @@ -0,0 +1 @@ +../../influence-psychology \ No newline at end of file diff --git a/.cursor/skills/ios-hig-design b/.cursor/skills/ios-hig-design new file mode 120000 index 0000000..90dc2e8 --- /dev/null +++ b/.cursor/skills/ios-hig-design @@ -0,0 +1 @@ +../../ios-hig-design \ No newline at end of file diff --git a/.cursor/skills/jobs-to-be-done b/.cursor/skills/jobs-to-be-done new file mode 120000 index 0000000..de5a5be --- /dev/null +++ b/.cursor/skills/jobs-to-be-done @@ -0,0 +1 @@ +../../jobs-to-be-done \ No newline at end of file diff --git a/.cursor/skills/lean-startup b/.cursor/skills/lean-startup new file mode 120000 index 0000000..4b5f8c6 --- /dev/null +++ b/.cursor/skills/lean-startup @@ -0,0 +1 @@ +../../lean-startup \ No newline at end of file diff --git a/.cursor/skills/made-to-stick b/.cursor/skills/made-to-stick new file mode 120000 index 0000000..f9f9e6c --- /dev/null +++ b/.cursor/skills/made-to-stick @@ -0,0 +1 @@ +../../made-to-stick \ No newline at end of file diff --git a/.cursor/skills/negotiation b/.cursor/skills/negotiation index 686a5d6..1936994 120000 --- a/.cursor/skills/negotiation +++ b/.cursor/skills/negotiation @@ -1 +1 @@ -../../.agents/skills/negotiation \ No newline at end of file +../../negotiation \ No newline at end of file diff --git a/.cursor/skills/predictable-revenue b/.cursor/skills/predictable-revenue new file mode 120000 index 0000000..2590bd8 --- /dev/null +++ b/.cursor/skills/predictable-revenue @@ -0,0 +1 @@ +../../predictable-revenue \ No newline at end of file diff --git a/.cursor/skills/refactoring-ui b/.cursor/skills/refactoring-ui new file mode 120000 index 0000000..800455d --- /dev/null +++ b/.cursor/skills/refactoring-ui @@ -0,0 +1 @@ +../../refactoring-ui \ No newline at end of file diff --git a/.cursor/skills/scorecard-marketing b/.cursor/skills/scorecard-marketing new file mode 120000 index 0000000..08995a5 --- /dev/null +++ b/.cursor/skills/scorecard-marketing @@ -0,0 +1 @@ +../../scorecard-marketing \ No newline at end of file diff --git a/.cursor/skills/storybrand-messaging b/.cursor/skills/storybrand-messaging new file mode 120000 index 0000000..d0e3baa --- /dev/null +++ b/.cursor/skills/storybrand-messaging @@ -0,0 +1 @@ +../../storybrand-messaging \ No newline at end of file diff --git a/.cursor/skills/top-design b/.cursor/skills/top-design new file mode 120000 index 0000000..e9934d2 --- /dev/null +++ b/.cursor/skills/top-design @@ -0,0 +1 @@ +../../top-design \ No newline at end of file diff --git a/.cursor/skills/traction-eos b/.cursor/skills/traction-eos new file mode 120000 index 0000000..65d6818 --- /dev/null +++ b/.cursor/skills/traction-eos @@ -0,0 +1 @@ +../../traction-eos \ No newline at end of file diff --git a/.cursor/skills/ux-heuristics b/.cursor/skills/ux-heuristics new file mode 120000 index 0000000..0dab01a --- /dev/null +++ b/.cursor/skills/ux-heuristics @@ -0,0 +1 @@ +../../ux-heuristics \ No newline at end of file diff --git a/.cursor/skills/web-typography b/.cursor/skills/web-typography new file mode 120000 index 0000000..4aa047f --- /dev/null +++ b/.cursor/skills/web-typography @@ -0,0 +1 @@ +../../web-typography \ No newline at end of file diff --git a/.gitignore b/.gitignore index d5543d7..da84128 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ *.zip *.skill node_modules/ +.claude/* +!.claude/skills/ diff --git a/.pi/skills/blue-ocean-strategy b/.pi/skills/blue-ocean-strategy new file mode 120000 index 0000000..0bfc12e --- /dev/null +++ b/.pi/skills/blue-ocean-strategy @@ -0,0 +1 @@ +../../blue-ocean-strategy \ No newline at end of file diff --git a/.pi/skills/cro-methodology b/.pi/skills/cro-methodology new file mode 120000 index 0000000..98b5ed5 --- /dev/null +++ b/.pi/skills/cro-methodology @@ -0,0 +1 @@ +../../cro-methodology \ No newline at end of file diff --git a/.pi/skills/crossing-the-chasm b/.pi/skills/crossing-the-chasm new file mode 120000 index 0000000..5b25034 --- /dev/null +++ b/.pi/skills/crossing-the-chasm @@ -0,0 +1 @@ +../../crossing-the-chasm \ No newline at end of file diff --git a/.pi/skills/design-everyday-things b/.pi/skills/design-everyday-things new file mode 120000 index 0000000..953c803 --- /dev/null +++ b/.pi/skills/design-everyday-things @@ -0,0 +1 @@ +../../design-everyday-things \ No newline at end of file diff --git a/.pi/skills/design-sprint b/.pi/skills/design-sprint new file mode 120000 index 0000000..d5830c2 --- /dev/null +++ b/.pi/skills/design-sprint @@ -0,0 +1 @@ +../../design-sprint \ No newline at end of file diff --git a/.pi/skills/drive-motivation b/.pi/skills/drive-motivation new file mode 120000 index 0000000..666eba6 --- /dev/null +++ b/.pi/skills/drive-motivation @@ -0,0 +1 @@ +../../drive-motivation \ No newline at end of file diff --git a/.pi/skills/hooked-ux b/.pi/skills/hooked-ux new file mode 120000 index 0000000..ce4d89c --- /dev/null +++ b/.pi/skills/hooked-ux @@ -0,0 +1 @@ +../../hooked-ux \ No newline at end of file diff --git a/.pi/skills/influence-psychology b/.pi/skills/influence-psychology new file mode 120000 index 0000000..742443a --- /dev/null +++ b/.pi/skills/influence-psychology @@ -0,0 +1 @@ +../../influence-psychology \ No newline at end of file diff --git a/.pi/skills/ios-hig-design b/.pi/skills/ios-hig-design new file mode 120000 index 0000000..90dc2e8 --- /dev/null +++ b/.pi/skills/ios-hig-design @@ -0,0 +1 @@ +../../ios-hig-design \ No newline at end of file diff --git a/.pi/skills/jobs-to-be-done b/.pi/skills/jobs-to-be-done new file mode 120000 index 0000000..de5a5be --- /dev/null +++ b/.pi/skills/jobs-to-be-done @@ -0,0 +1 @@ +../../jobs-to-be-done \ No newline at end of file diff --git a/.pi/skills/lean-startup b/.pi/skills/lean-startup new file mode 120000 index 0000000..4b5f8c6 --- /dev/null +++ b/.pi/skills/lean-startup @@ -0,0 +1 @@ +../../lean-startup \ No newline at end of file diff --git a/.pi/skills/made-to-stick b/.pi/skills/made-to-stick new file mode 120000 index 0000000..f9f9e6c --- /dev/null +++ b/.pi/skills/made-to-stick @@ -0,0 +1 @@ +../../made-to-stick \ No newline at end of file diff --git a/.pi/skills/negotiation b/.pi/skills/negotiation index 686a5d6..1936994 120000 --- a/.pi/skills/negotiation +++ b/.pi/skills/negotiation @@ -1 +1 @@ -../../.agents/skills/negotiation \ No newline at end of file +../../negotiation \ No newline at end of file diff --git a/.pi/skills/predictable-revenue b/.pi/skills/predictable-revenue new file mode 120000 index 0000000..2590bd8 --- /dev/null +++ b/.pi/skills/predictable-revenue @@ -0,0 +1 @@ +../../predictable-revenue \ No newline at end of file diff --git a/.pi/skills/refactoring-ui b/.pi/skills/refactoring-ui new file mode 120000 index 0000000..800455d --- /dev/null +++ b/.pi/skills/refactoring-ui @@ -0,0 +1 @@ +../../refactoring-ui \ No newline at end of file diff --git a/.pi/skills/scorecard-marketing b/.pi/skills/scorecard-marketing new file mode 120000 index 0000000..08995a5 --- /dev/null +++ b/.pi/skills/scorecard-marketing @@ -0,0 +1 @@ +../../scorecard-marketing \ No newline at end of file diff --git a/.pi/skills/storybrand-messaging b/.pi/skills/storybrand-messaging new file mode 120000 index 0000000..d0e3baa --- /dev/null +++ b/.pi/skills/storybrand-messaging @@ -0,0 +1 @@ +../../storybrand-messaging \ No newline at end of file diff --git a/.pi/skills/top-design b/.pi/skills/top-design new file mode 120000 index 0000000..e9934d2 --- /dev/null +++ b/.pi/skills/top-design @@ -0,0 +1 @@ +../../top-design \ No newline at end of file diff --git a/.pi/skills/traction-eos b/.pi/skills/traction-eos new file mode 120000 index 0000000..65d6818 --- /dev/null +++ b/.pi/skills/traction-eos @@ -0,0 +1 @@ +../../traction-eos \ No newline at end of file diff --git a/.pi/skills/ux-heuristics b/.pi/skills/ux-heuristics new file mode 120000 index 0000000..0dab01a --- /dev/null +++ b/.pi/skills/ux-heuristics @@ -0,0 +1 @@ +../../ux-heuristics \ No newline at end of file diff --git a/.pi/skills/web-typography b/.pi/skills/web-typography new file mode 120000 index 0000000..4aa047f --- /dev/null +++ b/.pi/skills/web-typography @@ -0,0 +1 @@ +../../web-typography \ No newline at end of file diff --git a/.windsurf/skills/blue-ocean-strategy b/.windsurf/skills/blue-ocean-strategy new file mode 120000 index 0000000..0bfc12e --- /dev/null +++ b/.windsurf/skills/blue-ocean-strategy @@ -0,0 +1 @@ +../../blue-ocean-strategy \ No newline at end of file diff --git a/.windsurf/skills/cro-methodology b/.windsurf/skills/cro-methodology new file mode 120000 index 0000000..98b5ed5 --- /dev/null +++ b/.windsurf/skills/cro-methodology @@ -0,0 +1 @@ +../../cro-methodology \ No newline at end of file diff --git a/.windsurf/skills/crossing-the-chasm b/.windsurf/skills/crossing-the-chasm new file mode 120000 index 0000000..5b25034 --- /dev/null +++ b/.windsurf/skills/crossing-the-chasm @@ -0,0 +1 @@ +../../crossing-the-chasm \ No newline at end of file diff --git a/.windsurf/skills/design-everyday-things b/.windsurf/skills/design-everyday-things new file mode 120000 index 0000000..953c803 --- /dev/null +++ b/.windsurf/skills/design-everyday-things @@ -0,0 +1 @@ +../../design-everyday-things \ No newline at end of file diff --git a/.windsurf/skills/design-sprint b/.windsurf/skills/design-sprint new file mode 120000 index 0000000..d5830c2 --- /dev/null +++ b/.windsurf/skills/design-sprint @@ -0,0 +1 @@ +../../design-sprint \ No newline at end of file diff --git a/.windsurf/skills/drive-motivation b/.windsurf/skills/drive-motivation new file mode 120000 index 0000000..666eba6 --- /dev/null +++ b/.windsurf/skills/drive-motivation @@ -0,0 +1 @@ +../../drive-motivation \ No newline at end of file diff --git a/.windsurf/skills/hooked-ux b/.windsurf/skills/hooked-ux new file mode 120000 index 0000000..ce4d89c --- /dev/null +++ b/.windsurf/skills/hooked-ux @@ -0,0 +1 @@ +../../hooked-ux \ No newline at end of file diff --git a/.windsurf/skills/influence-psychology b/.windsurf/skills/influence-psychology new file mode 120000 index 0000000..742443a --- /dev/null +++ b/.windsurf/skills/influence-psychology @@ -0,0 +1 @@ +../../influence-psychology \ No newline at end of file diff --git a/.windsurf/skills/ios-hig-design b/.windsurf/skills/ios-hig-design new file mode 120000 index 0000000..90dc2e8 --- /dev/null +++ b/.windsurf/skills/ios-hig-design @@ -0,0 +1 @@ +../../ios-hig-design \ No newline at end of file diff --git a/.windsurf/skills/jobs-to-be-done b/.windsurf/skills/jobs-to-be-done new file mode 120000 index 0000000..de5a5be --- /dev/null +++ b/.windsurf/skills/jobs-to-be-done @@ -0,0 +1 @@ +../../jobs-to-be-done \ No newline at end of file diff --git a/.windsurf/skills/lean-startup b/.windsurf/skills/lean-startup new file mode 120000 index 0000000..4b5f8c6 --- /dev/null +++ b/.windsurf/skills/lean-startup @@ -0,0 +1 @@ +../../lean-startup \ No newline at end of file diff --git a/.windsurf/skills/made-to-stick b/.windsurf/skills/made-to-stick new file mode 120000 index 0000000..f9f9e6c --- /dev/null +++ b/.windsurf/skills/made-to-stick @@ -0,0 +1 @@ +../../made-to-stick \ No newline at end of file diff --git a/.windsurf/skills/negotiation b/.windsurf/skills/negotiation index 686a5d6..1936994 120000 --- a/.windsurf/skills/negotiation +++ b/.windsurf/skills/negotiation @@ -1 +1 @@ -../../.agents/skills/negotiation \ No newline at end of file +../../negotiation \ No newline at end of file diff --git a/.windsurf/skills/predictable-revenue b/.windsurf/skills/predictable-revenue new file mode 120000 index 0000000..2590bd8 --- /dev/null +++ b/.windsurf/skills/predictable-revenue @@ -0,0 +1 @@ +../../predictable-revenue \ No newline at end of file diff --git a/.windsurf/skills/refactoring-ui b/.windsurf/skills/refactoring-ui new file mode 120000 index 0000000..800455d --- /dev/null +++ b/.windsurf/skills/refactoring-ui @@ -0,0 +1 @@ +../../refactoring-ui \ No newline at end of file diff --git a/.windsurf/skills/scorecard-marketing b/.windsurf/skills/scorecard-marketing new file mode 120000 index 0000000..08995a5 --- /dev/null +++ b/.windsurf/skills/scorecard-marketing @@ -0,0 +1 @@ +../../scorecard-marketing \ No newline at end of file diff --git a/.windsurf/skills/storybrand-messaging b/.windsurf/skills/storybrand-messaging new file mode 120000 index 0000000..d0e3baa --- /dev/null +++ b/.windsurf/skills/storybrand-messaging @@ -0,0 +1 @@ +../../storybrand-messaging \ No newline at end of file diff --git a/.windsurf/skills/top-design b/.windsurf/skills/top-design new file mode 120000 index 0000000..e9934d2 --- /dev/null +++ b/.windsurf/skills/top-design @@ -0,0 +1 @@ +../../top-design \ No newline at end of file diff --git a/.windsurf/skills/traction-eos b/.windsurf/skills/traction-eos new file mode 120000 index 0000000..65d6818 --- /dev/null +++ b/.windsurf/skills/traction-eos @@ -0,0 +1 @@ +../../traction-eos \ No newline at end of file diff --git a/.windsurf/skills/ux-heuristics b/.windsurf/skills/ux-heuristics new file mode 120000 index 0000000..0dab01a --- /dev/null +++ b/.windsurf/skills/ux-heuristics @@ -0,0 +1 @@ +../../ux-heuristics \ No newline at end of file diff --git a/.windsurf/skills/web-typography b/.windsurf/skills/web-typography new file mode 120000 index 0000000..4aa047f --- /dev/null +++ b/.windsurf/skills/web-typography @@ -0,0 +1 @@ +../../web-typography \ No newline at end of file diff --git a/scripts/sync-ide-skills.sh b/scripts/sync-ide-skills.sh new file mode 100755 index 0000000..c799f84 --- /dev/null +++ b/scripts/sync-ide-skills.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +# +# sync-ide-skills.sh — Sync skill symlinks to IDE compatibility directories. +# +# Discovers all skill directories (those containing SKILL.md) at the repo root +# and creates symlinks in each IDE's skills directory: +# .claude/skills/ .cursor/skills/ .windsurf/skills/ .pi/skills/ +# +# Run this after adding or removing a skill. + +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +cd "$REPO_ROOT" + +IDE_DIRS=(.claude/skills .cursor/skills .windsurf/skills .pi/skills) + +# Discover skills: top-level directories containing SKILL.md +skills=() +for dir in */; do + dir="${dir%/}" + [[ -f "$dir/SKILL.md" ]] && skills+=("$dir") +done + +if [[ ${#skills[@]} -eq 0 ]]; then + echo "Error: No skill directories found (expected dirs with SKILL.md at repo root)" + exit 1 +fi + +echo "Found ${#skills[@]} skills: ${skills[*]}" +echo "" + +errors=0 + +for ide_dir in "${IDE_DIRS[@]}"; do + # Clean existing symlinks + rm -rf "$ide_dir" + mkdir -p "$ide_dir" + + for skill in "${skills[@]}"; do + ln -s "../../$skill" "$ide_dir/$skill" + done + + # Verify symlinks resolve + broken=$(find "$ide_dir" -maxdepth 1 -type l ! -exec test -e {} \; -print 2>/dev/null || true) + if [[ -n "$broken" ]]; then + echo "ERROR: Broken symlinks in $ide_dir:" + echo "$broken" + errors=$((errors + 1)) + else + echo "OK $ide_dir/ — ${#skills[@]} symlinks" + fi +done + +echo "" +if [[ $errors -gt 0 ]]; then + echo "FAILED: $errors directory(ies) have broken symlinks" + exit 1 +else + echo "All ${#skills[@]} skills synced to ${#IDE_DIRS[@]} IDE directories." +fi diff --git a/skills/negotiation b/skills/negotiation deleted file mode 120000 index 1b1ec9a..0000000 --- a/skills/negotiation +++ /dev/null @@ -1 +0,0 @@ -../.agents/skills/negotiation \ No newline at end of file