/marketplace:bootstrap-context — Marketplace Context Extractor
If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.
A meta-skill that extracts company-specific marketplace knowledge from the connected stack and from a guided conversation with engineers, then generates a tailored marketplace-context skill.
Why this exists
The marketplace plugin ships with three general knowledge libraries (marketplace-pre-member-personalisation, marketplace-search-recsys-planning, marketplace-personalisation) grounded in research and engineering literature. They describe the principles. They don't know the user's specific two-sided market, indexes, solutions, dashboards, gotchas, or golden set.
This skill bridges that gap: it generates a skill capturing everything specific to this company, so when the user later invokes /marketplace:diagnose or /marketplace:expand-personalisation, Claude has both the principles and the concrete state to act on.
How It Works
Two modes:
- Bootstrap Mode — Create a new marketplace-context skill from scratch
- Iteration Mode — Improve an existing skill by adding a domain or updating a section
All other /marketplace:* commands check for the generated skill before running and use it as their source of company-specific truth.
Bootstrap Mode
Use when: user wants to create a new marketplace-context skill for their stack.
Phase 1: Stack Discovery
Detect which MCPs are connected. The skill works with any combination; more connected MCPs means less asking.
Check for these categories (see CONNECTORS.md):
~~search engine — OpenSearch, Elasticsearch, Vespa, Algolia, ...
~~personalisation engine — AWS Personalize, Recombee, Vertex AI, ...
~~product analytics — Amplitude, Twilio Segment, Mixpanel, ...
~~observability — Datadog, Grafana, New Relic, ...
~~data warehouse — Databricks, Snowflake, BigQuery, ...
~~feature store — Databricks Feature Store, SageMaker Feature Store, Feast, Tecton, ...
Announce what was detected before running any query, then proceed with targeted discovery. Examples:
If ~~search engine is connected:
- List indexes (
GET /_cat/indices for OpenSearch/Elasticsearch, or equivalent)
- Ask: "Which 3-5 of these are hit by production search? Which are backfill / built-once / staging?"
- For the production indexes: pull mapping, analyzer definitions, approximate doc count, approximate size
If ~~personalisation engine is connected:
- List datasets, solutions/campaigns/recommenders, filters
- Ask: "Which solutions are in production? Which are experimental? Which recipe does each use?"
- For production solutions: pull recipe metadata, training metrics, dataset schema, filter definitions
If ~~observability is connected:
- List dashboards matching marketplace-relevant names:
search, relevance, homefeed, recsys, personalisation, conversion, funnel, recommendation
- For each: pull key monitors, alert thresholds, SLO definitions
If ~~product analytics is connected:
- List top events by volume in the last 7 days
- Ask: "Which of these are impression / click / conversion events for ranked surfaces? Which lack
rank_position or model_version?"
If ~~data warehouse is connected:
- List tables / views matching marketplace patterns:
events, impressions, clicks, bookings, listings, users, sessions, searches
- Sample a few rows from each to understand grain and key columns
If ~~feature store is connected:
- List feature views / feature groups / registered features
- For each production feature: pull definition, owner, coverage, freshness, training-serving parity status
- Cross-reference against the
~~personalisation engine solutions to see which features feed which recipe
- Ask: "Which features are in production? Which are experimental? Any suspected kill candidates (features not earning their maintenance)?"
Every query is announced before running and read-only. Do not write to any data source.
Phase 2: Marketplace Fundamentals
Ask these questions conversationally (not all at once), using stack-discovery results to pre-fill context.
Two Sides
"What are the two sides of your marketplace? How do they depend on each other? Is the value exchange money-for-service, service-for-service (barter), or mixed?"
Listen for:
- Side labels (e.g. "owners and sitters", "hosts and guests", "drivers and riders")
- Dependency direction (who needs whom more, and when)
- Symmetry of the value exchange
- Whether one side is typically the buyer and one the seller, or both are peers
- Frequency of participation per side (daily, seasonal, one-off)
Monetization
"How does the platform make money? Subscription, per-transaction, hybrid, tiered memberships? What's the primary revenue-linked event that ranking should care about?"
Listen for:
- Subscription vs transaction fee vs hybrid vs listing fee
- Tier structure and what each tier unlocks
- Primary revenue event (membership purchased, booking confirmed, transaction completed)
- How revenue events depend on marketplace health (slow renewal game vs fast transactional)
- Whether revenue signal can be used as a ranking label (it almost always can — even for subscription,
did this session lead to first booking? is trackable)
Surfaces
"What surfaces in the product serve ranked or recommended content? Which are personalised today, which aren't?"
Listen for (prompt the user with the surfaces-to-personalise.md menu if needed):
- Homepage, search, category / collection pages, listing detail, messaging, email, push, onboarding, paywall, landing, saved searches, alerts, profile, zero-result fallback, abandoned-browse re-engagement, first-stay path for new suppliers
- Current personalisation state per surface (none, static, rule-based, collaborative, content-based, ML re-ranker, ML ranker, bandit)
- Which surface drives the most conversion
- Which surface is most neglected relative to its traffic
Event Taxonomy
"Walk me through how impressions, clicks, and conversions are tracked. Which events are the ground truth?"
Listen for:
- Impression vs view vs hover tracking distinctions
- Whether impressions log
rank_position, model_version, surface_id, and request_id
- Click attribution (to impression, to session, to user)
- Conversion events — which one is the revenue-linked one
- Known gaps and data quality issues
KPIs and Guardrails
"What are the 2-3 metrics you'd protect with your life? Which ones are trending up or down right now?"
Listen for:
- North-star metric
- Supporting metrics (conversion rate by funnel stage, retention, engagement)
- Guardrails (p95 latency, error rate, infra cost)
- Current trend direction and any open investigations
Liquidity
"Where is the marketplace thin? Which geos, segments, or seasons have supply-demand imbalance?"
Listen for:
- Geo thinness (city / country / region)
- Seasonal variation (peak / trough)
- Side-specific thinness (too many suppliers vs too many seekers)
- Current mitigations in flight
Gotchas and Incidents
"What incidents have you had with search or personalisation? What failure patterns do you watch for?"
Listen for:
- Death spirals, popularity bias events
- Relevance regressions with root cause
- Cold-start failures
- Data quality incidents
- Feedback-loop blow-ups
Phase 3: Generate the Skill
Create a skill directory at the path the user specified, or default to ./.claude/skills/<name>-marketplace-context/ in the current working directory.
The <name> should be a short kebab-case identifier — ask the user if not provided.
Structure:
<name>-marketplace-context/
├── SKILL.md # Auto-generated with frontmatter + navigation
├── marketplace.md # Two sides, monetization model, KPIs, guardrails
├── surfaces.md # Surface inventory with current personalisation state
├── events.md # Event taxonomy, known gaps
├── indexes.md # ~~search engine indexes, mappings, analyzers
├── features.md # ~~feature store registry, per-feature coverage / freshness / owner / solution mapping
├── recipes.md # ~~personalisation engine datasets, solutions, filters
├── observability.md # ~~observability dashboards, monitors, SLOs
├── liquidity.md # Supply-demand state per geo / season / side
├── gotchas.md # Known incidents and lessons (append-only)
└── golden-set.md # Offline evaluation queries and intents
Use references/skill-template.md for the generated SKILL.md.
For each reference file, use the structure and question bank in references/sections.md.
See references/example-output.md for a complete worked example.
Only generate files for sections the user has content for. Skip empty sections and note them in the SKILL.md navigation as "to be filled" so iteration mode can fill them later.
Phase 4: Present and Verify
- Show the user a one-line summary per generated section
- Ask: "Anything missing? Anything that should be corrected?"
- Apply corrections in place
- Announce: "The skill is at
<path>. Other /marketplace:* commands will load it automatically when they're relevant to your marketplace."
Iteration Mode
Use when: user has an existing marketplace-context skill but needs to add or update a section.
Step 1: Load Existing Skill
Ask the user for the path, or search common locations (./.claude/skills/*-marketplace-context/, ~/.claude/skills/*-marketplace-context/).
Read the current SKILL.md and all section files to understand current state.
Step 2: Identify the Gap
Ask: "Which section needs more context? What's out of date, missing, or wrong?"
Common gaps:
- A new surface was added to the product
- The event taxonomy changed (new events, renamed properties, dropped fields)
- A new
~~search engine index or ~~personalisation engine solution went to production
- A new observability dashboard or monitor
- A recent incident to add to
gotchas.md
- New golden-set cases from a regression investigation
- A monetization change (new tier, price change, feature unlock change)
Step 3: Targeted Discovery
For the identified section:
- Query the relevant MCPs (if connected) for the current state
- Ask section-specific questions from references/sections.md
- Diff against the current file to show what changed
Step 4: Update and Present
- Append (for
gotchas.md, golden-set.md) or update (for everything else) the section file
- Update SKILL.md's navigation section if a new file was added
- Show the diff
- Ask for confirmation before writing
Read-Only Posture
This skill is read-only against every MCP it touches (~~search engine, ~~personalisation engine, ~~observability, ~~product analytics, ~~data warehouse). It writes files only inside the generated marketplace-context skill directory. Every query is announced before execution.
Quality Checklist
Before presenting a generated skill, verify:
Reference Files
| File |
Description |
| references/skill-template.md |
Template for the generated SKILL.md |
| references/sections.md |
Structure, questions, and MCP queries for each section |
| references/example-output.md |
Example of a complete marketplace-context skill |
Related Commands
/marketplace:explore-events — run after bootstrap to deepen the events.md section with live data profiling
/marketplace:build-golden-set — run after bootstrap to fill golden-set.md from production query logs
/marketplace:expand-personalisation audit — run after bootstrap to fill the "could be personalised but isn't" backlog
1---2name: bootstrap-context3description: Generate or improve a company-specific marketplace-context skill by extracting knowledge from engineers and from the connected stack. BOOTSTRAP MODE - Triggers: "Create a marketplace context skill", "Set up marketplace personalisation for our stack", "Help me create a skill for our recsys", "Generate a marketplace context skill for [company]", "Bootstrap our recsys context" → Discovers surfaces / events / indexes / recipes / observability via MCPs, asks targeted questions, generates an initial skill with reference files. ITERATION MODE - Triggers: "Add context about [domain]", "The context skill needs more info about [topic]", "Update the marketplace context skill with [surfaces/events/indexes/recipes]", "Improve the [domain] section of the context skill" → Loads existing skill, asks targeted questions, appends/updates reference files. Use when engineers want Claude to understand their company's specific two-sided marketplace — the two sides, monetization model, surfaces, event taxonomy, index mappings, perso4---56# /marketplace:bootstrap-context — Marketplace Context Extractor78> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).910A meta-skill that extracts company-specific marketplace knowledge from the connected stack and from a guided conversation with engineers, then generates a tailored marketplace-context skill.1112## Why this exists1314The marketplace plugin ships with three **general** knowledge libraries (`marketplace-pre-member-personalisation`, `marketplace-search-recsys-planning`, `marketplace-personalisation`) grounded in research and engineering literature. They describe the *principles*. They don't know the user's *specific* two-sided market, indexes, solutions, dashboards, gotchas, or golden set.1516This skill bridges that gap: it generates a skill capturing everything specific to *this* company, so when the user later invokes `/marketplace:diagnose` or `/marketplace:expand-personalisation`, Claude has both the principles **and** the concrete state to act on.1718## How It Works1920Two modes:21221. **Bootstrap Mode** — Create a new marketplace-context skill from scratch232. **Iteration Mode** — Improve an existing skill by adding a domain or updating a section2425All other `/marketplace:*` commands check for the generated skill before running and use it as their source of company-specific truth.2627---2829## Bootstrap Mode3031Use when: user wants to create a new marketplace-context skill for their stack.3233### Phase 1: Stack Discovery3435Detect which MCPs are connected. The skill works with any combination; more connected MCPs means less asking.3637Check for these categories (see [CONNECTORS.md](../../CONNECTORS.md)):3839- `~~search engine` — OpenSearch, Elasticsearch, Vespa, Algolia, ...40- `~~personalisation engine` — AWS Personalize, Recombee, Vertex AI, ...41- `~~product analytics` — Amplitude, Twilio Segment, Mixpanel, ...42- `~~observability` — Datadog, Grafana, New Relic, ...43- `~~data warehouse` — Databricks, Snowflake, BigQuery, ...44- `~~feature store` — Databricks Feature Store, SageMaker Feature Store, Feast, Tecton, ...4546**Announce what was detected** before running any query, then proceed with targeted discovery. Examples:4748**If `~~search engine` is connected:**491. List indexes (`GET /_cat/indices` for OpenSearch/Elasticsearch, or equivalent)502. Ask: "Which 3-5 of these are hit by production search? Which are backfill / built-once / staging?"513. For the production indexes: pull mapping, analyzer definitions, approximate doc count, approximate size5253**If `~~personalisation engine` is connected:**541. List datasets, solutions/campaigns/recommenders, filters552. Ask: "Which solutions are in production? Which are experimental? Which recipe does each use?"563. For production solutions: pull recipe metadata, training metrics, dataset schema, filter definitions5758**If `~~observability` is connected:**591. List dashboards matching marketplace-relevant names: `search`, `relevance`, `homefeed`, `recsys`, `personalisation`, `conversion`, `funnel`, `recommendation`602. For each: pull key monitors, alert thresholds, SLO definitions6162**If `~~product analytics` is connected:**631. List top events by volume in the last 7 days642. Ask: "Which of these are impression / click / conversion events for ranked surfaces? Which lack `rank_position` or `model_version`?"6566**If `~~data warehouse` is connected:**671. List tables / views matching marketplace patterns: `events`, `impressions`, `clicks`, `bookings`, `listings`, `users`, `sessions`, `searches`682. Sample a few rows from each to understand grain and key columns6970**If `~~feature store` is connected:**711. List feature views / feature groups / registered features722. For each production feature: pull definition, owner, coverage, freshness, training-serving parity status733. Cross-reference against the `~~personalisation engine` solutions to see which features feed which recipe744. Ask: "Which features are in production? Which are experimental? Any suspected kill candidates (features not earning their maintenance)?"7576Every query is **announced before running** and **read-only**. Do not write to any data source.7778### Phase 2: Marketplace Fundamentals7980Ask these questions conversationally (not all at once), using stack-discovery results to pre-fill context.8182**Two Sides**83> "What are the two sides of your marketplace? How do they depend on each other? Is the value exchange money-for-service, service-for-service (barter), or mixed?"8485Listen for:86- Side labels (e.g. "owners and sitters", "hosts and guests", "drivers and riders")87- Dependency direction (who needs whom more, and when)88- Symmetry of the value exchange89- Whether one side is typically the buyer and one the seller, or both are peers90- Frequency of participation per side (daily, seasonal, one-off)9192**Monetization**93> "How does the platform make money? Subscription, per-transaction, hybrid, tiered memberships? What's the primary revenue-linked event that ranking should care about?"9495Listen for:96- Subscription vs transaction fee vs hybrid vs listing fee97- Tier structure and what each tier unlocks98- Primary revenue event (membership purchased, booking confirmed, transaction completed)99- How revenue events depend on marketplace health (slow renewal game vs fast transactional)100- Whether revenue signal can be used as a ranking label (it almost always can — even for subscription, `did this session lead to first booking?` is trackable)101102**Surfaces**103> "What surfaces in the product serve ranked or recommended content? Which are personalised today, which aren't?"104105Listen for (prompt the user with the [surfaces-to-personalise.md](../expand-personalisation/references/surfaces-to-personalise.md) menu if needed):106- Homepage, search, category / collection pages, listing detail, messaging, email, push, onboarding, paywall, landing, saved searches, alerts, profile, zero-result fallback, abandoned-browse re-engagement, first-stay path for new suppliers107- Current personalisation state per surface (none, static, rule-based, collaborative, content-based, ML re-ranker, ML ranker, bandit)108- Which surface drives the most conversion109- Which surface is most neglected relative to its traffic110111**Event Taxonomy**112> "Walk me through how impressions, clicks, and conversions are tracked. Which events are the ground truth?"113114Listen for:115- Impression vs view vs hover tracking distinctions116- Whether impressions log `rank_position`, `model_version`, `surface_id`, and `request_id`117- Click attribution (to impression, to session, to user)118- Conversion events — which one is the revenue-linked one119- Known gaps and data quality issues120121**KPIs and Guardrails**122> "What are the 2-3 metrics you'd protect with your life? Which ones are trending up or down right now?"123124Listen for:125- North-star metric126- Supporting metrics (conversion rate by funnel stage, retention, engagement)127- Guardrails (p95 latency, error rate, infra cost)128- Current trend direction and any open investigations129130**Liquidity**131> "Where is the marketplace thin? Which geos, segments, or seasons have supply-demand imbalance?"132133Listen for:134- Geo thinness (city / country / region)135- Seasonal variation (peak / trough)136- Side-specific thinness (too many suppliers vs too many seekers)137- Current mitigations in flight138139**Gotchas and Incidents**140> "What incidents have you had with search or personalisation? What failure patterns do you watch for?"141142Listen for:143- Death spirals, popularity bias events144- Relevance regressions with root cause145- Cold-start failures146- Data quality incidents147- Feedback-loop blow-ups148149### Phase 3: Generate the Skill150151Create a skill directory at the path the user specified, or default to `./.claude/skills/<name>-marketplace-context/` in the current working directory.152153The `<name>` should be a short kebab-case identifier — ask the user if not provided.154155Structure:156157```158<name>-marketplace-context/159├── SKILL.md # Auto-generated with frontmatter + navigation160├── marketplace.md # Two sides, monetization model, KPIs, guardrails161├── surfaces.md # Surface inventory with current personalisation state162├── events.md # Event taxonomy, known gaps163├── indexes.md # ~~search engine indexes, mappings, analyzers164├── features.md # ~~feature store registry, per-feature coverage / freshness / owner / solution mapping165├── recipes.md # ~~personalisation engine datasets, solutions, filters166├── observability.md # ~~observability dashboards, monitors, SLOs167├── liquidity.md # Supply-demand state per geo / season / side168├── gotchas.md # Known incidents and lessons (append-only)169└── golden-set.md # Offline evaluation queries and intents170```171172Use [references/skill-template.md](references/skill-template.md) for the generated `SKILL.md`.173174For each reference file, use the structure and question bank in [references/sections.md](references/sections.md).175176See [references/example-output.md](references/example-output.md) for a complete worked example.177178Only generate files for sections the user has content for. Skip empty sections and note them in the SKILL.md navigation as "to be filled" so iteration mode can fill them later.179180### Phase 4: Present and Verify1811821. Show the user a one-line summary per generated section1832. Ask: "Anything missing? Anything that should be corrected?"1843. Apply corrections in place1854. Announce: "The skill is at `<path>`. Other `/marketplace:*` commands will load it automatically when they're relevant to your marketplace."186187---188189## Iteration Mode190191Use when: user has an existing marketplace-context skill but needs to add or update a section.192193### Step 1: Load Existing Skill194195Ask the user for the path, or search common locations (`./.claude/skills/*-marketplace-context/`, `~/.claude/skills/*-marketplace-context/`).196197Read the current SKILL.md and all section files to understand current state.198199### Step 2: Identify the Gap200201Ask: "Which section needs more context? What's out of date, missing, or wrong?"202203Common gaps:204- A new surface was added to the product205- The event taxonomy changed (new events, renamed properties, dropped fields)206- A new `~~search engine` index or `~~personalisation engine` solution went to production207- A new observability dashboard or monitor208- A recent incident to add to `gotchas.md`209- New golden-set cases from a regression investigation210- A monetization change (new tier, price change, feature unlock change)211212### Step 3: Targeted Discovery213214For the identified section:2152161. Query the relevant MCPs (if connected) for the current state2172. Ask section-specific questions from [references/sections.md](references/sections.md)2183. Diff against the current file to show what changed219220### Step 4: Update and Present2212221. Append (for `gotchas.md`, `golden-set.md`) or update (for everything else) the section file2232. Update SKILL.md's navigation section if a new file was added2243. Show the diff2254. Ask for confirmation before writing226227---228229## Read-Only Posture230231This skill is **read-only** against every MCP it touches (`~~search engine`, `~~personalisation engine`, `~~observability`, `~~product analytics`, `~~data warehouse`). It writes files only inside the generated marketplace-context skill directory. Every query is **announced before execution**.232233## Quality Checklist234235Before presenting a generated skill, verify:236237- [ ] `SKILL.md` has complete frontmatter (`name`, `description`)238- [ ] Two sides are named and the value-exchange asymmetry is documented in `marketplace.md`239- [ ] Monetization model is explicit in `marketplace.md` (not assumed)240- [ ] Primary revenue event is named241- [ ] At least one surface per broad category (search, feed, email/push, onboarding, paywall) in `surfaces.md`242- [ ] Impression event in `events.md` documents whether `rank_position` and `model_version` are logged243- [ ] At least one production index in `indexes.md` (if `~~search engine` connected)244- [ ] At least one production feature in `features.md` with owner, coverage, and consuming-solution mapping (if `~~feature store` connected)245- [ ] At least one production solution in `recipes.md` (if `~~personalisation engine` connected)246- [ ] At least one dashboard and one SLO in `observability.md` (if `~~observability` connected)247- [ ] `gotchas.md` has at least one entry (the user will add more over time)248- [ ] `golden-set.md` has at least 10 queries / intents (prompt to build more via `/marketplace:build-golden-set`)249250## Reference Files251252| File | Description |253|------|-------------|254| [references/skill-template.md](references/skill-template.md) | Template for the generated `SKILL.md` |255| [references/sections.md](references/sections.md) | Structure, questions, and MCP queries for each section |256| [references/example-output.md](references/example-output.md) | Example of a complete marketplace-context skill |257258## Related Commands259260- `/marketplace:explore-events` — run after bootstrap to deepen the `events.md` section with live data profiling261- `/marketplace:build-golden-set` — run after bootstrap to fill `golden-set.md` from production query logs262- `/marketplace:expand-personalisation audit` — run after bootstrap to fill the "could be personalised but isn't" backlog