$npx -y skills add affaan-m/ECC --skill brand-discoveryUse when a brand needs to discover or articulate its identity through structured multi-session interviews. Covers purpose, positioning, audience, personality, voice, narrative, and founder-brand tension across 8 modules using laddering, 5 Whys, and projective techniques. Produces
| 1 | # Brand Discovery |
| 2 | |
| 3 | Use this skill to conduct a structured, adaptive brand identity interview. |
| 4 | The goal is a complete `90_SYNTHESIS.md` — a master brandbook the |
| 5 | organization can use to brief designers, writers, and external |
| 6 | collaborators. |
| 7 | |
| 8 | The interview runs across multiple sessions. Capture answers to disk as you |
| 9 | go so that no elicited knowledge is lost when a conversation ends, and so a |
| 10 | later session can resume from where the last one stopped. |
| 11 | |
| 12 | ## When to Activate |
| 13 | |
| 14 | - A brand is being created, repositioned, or needs a written identity reference to brief collaborators. |
| 15 | - Multiple sessions are expected — the conversation will span days or weeks. |
| 16 | - Multiple founders or stakeholders need individual interviews before a reconciliation pass. |
| 17 | - The user wants a structured, repeatable method rather than an ad-hoc chat. |
| 18 | - Existing brand documentation is scattered, implicit, or founder-dependent and needs to be made explicit. |
| 19 | |
| 20 | ## Session start protocol |
| 21 | |
| 22 | On every activation, perform these steps **before** asking any interview |
| 23 | question: |
| 24 | |
| 25 | 1. **Check for prior progress.** Look for an existing set of module files |
| 26 | and a `state.json` checkpoint in the project's brand-identity directory. |
| 27 | If none exists, this is a fresh start — confirm the brand name, |
| 28 | participants, and where to save the brand-identity files, then begin at |
| 29 | the first module. |
| 30 | 2. **Read the current module file** if one is in progress, and scan its Raw |
| 31 | section for previously captured answers. |
| 32 | 3. **Report to the user** in two or three sentences: which module we are |
| 33 | in, its status, and what remains. Then ask: "Continue here, or switch |
| 34 | module?" |
| 35 | |
| 36 | ## Interview discipline |
| 37 | |
| 38 | Apply these rules throughout every module: |
| 39 | |
| 40 | 1. **One question at a time.** Never present a list of questions. |
| 41 | 2. **After each answer:** short paraphrase → one deepening probe OR close |
| 42 | the thread if the topic is saturated. Never move on silently. |
| 43 | 3. **Laddering:** for every "what" answer, follow with "Why does that |
| 44 | matter to you?" until a core value surfaces (typically two to four |
| 45 | iterations). |
| 46 | 4. **5 Whys:** for beliefs or positioning claims — push until the root |
| 47 | reason, not the surface declaration, is on the table. |
| 48 | 5. **Detect thin answers:** if generic, jargon-heavy, or vague, ask for |
| 49 | one concrete example, a client story, or a number. |
| 50 | 6. **Projective techniques** (use once per module to break a plateau): |
| 51 | - "If the brand were a person, how would they walk into a room?" |
| 52 | - Brand obituary: "If the organization closed in five years, what would |
| 53 | customers miss? What would you regret not having said?" |
| 54 | - Competitive contrast: "Name one peer you admire but would never want |
| 55 | to become. What specifically makes them the wrong model?" |
| 56 | 7. **Saturation signal:** when two consecutive probes produce no new |
| 57 | information, summarise and close the module. |
| 58 | 8. **End of module:** write a structured module file with two sections: |
| 59 | - `## Raw` — verbatim quotes and examples. |
| 60 | - `## Synthesis` — your interpretation, three candidate formulations, |
| 61 | open questions, contradictions between participants. |
| 62 | Then update the `state.json` checkpoint (see State protocol below). |
| 63 | |
| 64 | ## Module sequence |
| 65 | |
| 66 | | File | Label | Frameworks used | |
| 67 | |------|-------|-----------------| |
| 68 | | `10_purpose-why.md` | Purpose / Why | Sinek Golden Circle, Lencioni | |
| 69 | | `20_positioning.md` | Positioning | Dunford "Obviously Awesome", Moore template | |
| 70 | | `30_audience-niche.md` | Audience & Niche | Baker "Business of Expertise", ICP | |
| 71 | | `40_personality-archetype.md` | Personality & Archetype | Mark & Pearson 12 archetypes, J. Aaker 5 dims | |
| 72 | | `50_voice-tone.md` | Voice & Tone | Brand voice guidelines | |
| 73 | | `60_narrative-story.md` | Narrative / Story | Neumeier trueline, brand story arc | |
| 74 | | `70_founder-tension.md` | Founder Brands vs Studio Brand | Enns "Win Without Pitching" | |
| 75 | | `90_SYNTHESIS.md` | Master Brandbook | Kapferer prism, Aaker brand system | |
| 76 | |
| 77 | Complete modules in order. Honour a user request to jump modules and note |
| 78 | the skip in `state.json`. |
| 79 | |
| 80 | ## State write protocol |
| 81 | |
| 82 | After each module reaches saturation or done status, write two files: |
| 83 | |
| 84 | **Module file** at `modules/{moduleFile}` — full Raw and Synthesis content. |
| 85 | |
| 86 | **`state.json`** — a lightweight checkpoint so a later session can resume. |
| 87 | Update `completedModules`, `inProgressModule`, `nextModule`, `lastUpdated`. |
| 88 | Schema: |
| 89 | |
| 90 | ```json |
| 91 | { |
| 92 | "session": "{brand_name}-brand-{YYYY-MM}", |
| 93 | "outputPath": "{path_to_brand_identity_directory}", |
| 94 | "completedModules": [], |
| 95 | "inProgressModule": "10_purpose-why.md", |
| 96 | "nextModule": "20_positioning.md", |
| 97 | " |