From stoik-marketing
Loads Stoïk's Ideal Customer Profile (ICP) definitions from the team's Notion ICP database. Pinned to the "ICP profiles" database in the Marketing foundations container. Properties on the database are deliberately minimal (Name, Status, Priority, Last reviewed); the rich ICP content lives in each row's page body. This skill fetches both.
How this skill is triggered — by the user, by Claude, or both
Slash command
/stoik-marketing:icp-profilesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Source of truth: Notion `ICP profiles` database under Marketing foundations. The database has slim properties; the rich content (role, segment, geography, language, buying stage, concerns, channels, objections, triggers, existing stack, notes) lives inside each row's **page body** under structured H2 headings. Always fetch both.
Source of truth: Notion ICP profiles database under Marketing foundations. The database has slim properties; the rich content (role, segment, geography, language, buying stage, concerns, channels, objections, triggers, existing stack, notes) lives inside each row's page body under structured H2 headings. Always fetch both.
| Resource | Notion ID | URL |
|---|---|---|
| ICP profiles database | 75d1b32c-f157-4d52-9b31-ad4b8d71ef88 | https://www.notion.so/75d1b32cf1574d529b31ad4b8d71ef88 |
| Data source (collection) | 829adc11-5642-47d9-bd58-9436da3d5d05 | collection://829adc11-5642-47d9-bd58-9436da3d5d05 |
| Parent: Marketing foundations | 35cf15e1-b3e7-8168-a618-de718878bdf3 | https://www.notion.so/35cf15e1b3e78168a618de718878bdf3 |
target_icp field.Two-step fetch:
query_data_sources against the pinned data source. Filter by Status = Live by default. When the caller specifies an ICP by name, also filter on Name. Returns row metadata: name, status, priority, last reviewed, page URL.notion-fetch on the page URL from step 1. The page body contains the rich ICP detail under structured H2 headings.If the pinned ID returns an error, fall back to notion-search for ICP profiles in the Marketing teamspace, then update this skill's pinned ID.
| Property | Type | Use |
|---|---|---|
| Name | Title | Short label, e.g., "Broker — generalist" |
| Status | Select (Draft / In review / Live / Archived) | Plugin filters to Live by default |
| Priority | Select (Primary / Secondary / Tertiary) | Strategic priority for orchestrator default |
| Last reviewed | Date | Staleness check |
Everything else is in the page body.
Each row's page body uses these H2 headings (set by the team's standard template):
When parsing the page body, extract content under each heading. Empty sections mean "not yet defined" — surface to the caller.
icp:
name: <text>
priority: <text>
status: <text>
last_reviewed: <date>
notion_source: <row url>
body:
role: <text>
segment_geography: <text>
working_language: <text>
buying_stage: <text>
decision_power: <text>
top_concerns: <text>
channels: <text>
objections: <text>
trigger_events: <text>
existing_stack: <text>
notes: <text>
last_fetched: <timestamp>
gaps_flagged: <list of empty headings>
If the brief targets more than one ICP, fetch both rows (properties + page bodies) and call out where messaging will need to fork. Do not silently merge into a composite profile.
In v1 the database is created but not yet populated. When invoked against an empty database, return:
status: emptynote: "ICP profiles database exists at <url> but has no rows yet. The marketing team is in the process of formalizing ICPs. Output skills should flag this gap to the user rather than generating against thin context."This behavior should change as the team adds rows.
Output skills should not paste raw ICP fields into customer-facing copy. They use the ICP profile to shape angle, vocabulary, examples, and proof points. The ICP is context for the writer, not source material for the reader.
When fetching ICP rows, watch for: stale Last reviewed (>6 months), Draft rows that should be Live, empty page-body sections, contradictions with brand-foundations audience descriptions. Flag concrete suggestions to the team via the conversation per the standing drift-detection rule.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub stoikio/stoik-marketing --plugin stoik-marketing