/save-knowledge
Save brand knowledge to memory. Use when: persisting campaign learnings, guidelines, or competitive intel for retrieval.
$ npx -y skills add indranilbanerjee/digital-marketing-pro --skill save-knowledge --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/save-knowledge
Context preview
The summary Claude sees to decide when to auto-load this skill.
Save brand knowledge to memory. Use when: persisting campaign learnings, guidelines, or competitive intel for retrieval.
SKILL.md
save-knowledge.SKILL.mdname: save-knowledge
description: "Save brand knowledge to memory. Use when: persisting campaign learnings, guidelines, or competitive intel for retrieval."
/digital-marketing-pro:save-knowledge
Purpose
Save brand knowledge to the persistent memory layer (a vector database you've connected — for example Pinecone via `@pinecone-database/mcp`) for semantic retrieval in future sessions. Stores campaign learnings, competitive intelligence, brand guidelines, and performance insights with proper metadata tagging so that valuable knowledge is never lost between sessions. Every stored item is content-hashed for deduplication, tagged with brand context, and indexed for natural language search — turning ad-hoc learnings into durable institutional memory that every agent can draw from. Designed for targeted, intentional knowledge capture — for bulk session syncing, use `/digital-marketing-pro:sync-memory` instead.
Input Required
The user must provide (or will be prompted for):
- **Content to store**: The knowledge to save — can be plain text typed directly, a reference to content in the current conversation (e.g., "save that email analysis we just did"), structured data from a campaign report or audit, or a URL to external research. Content is stored as-is with optional summarization for the index entry
- **Content type**: One of: `guideline` (brand rules, voice standards, style restrictions), `campaign-learning` (what worked or failed in a campaign with supporting evidence), `competitive-intel` (competitor findings, positioning, pricing, strategy moves), `performance-insight` (metrics, benchmarks, trends, statistical patterns), or `brand-asset` (approved copy, templates, creative references, messaging frameworks)
- **Tags**: Descriptive tags for filtered retrieval — e.g., "email", "q4-2025", "subject-lines", "audience-millennials", "paid-social", "black-friday". If not provided, auto-suggested based on content analysis using brand context, industry taxonomy, and channel detection. Multiple tags encouraged for richer retrieval
- **Source context**: Where this knowledge originated — current session analysis, imported report, campaign retrospective, external research, competitor monitoring, or team input. Used for provenance tracking, credibility weighting during retrieval, and audit trail compliance
- **Priority (optional)**: `high` (surface this knowledge proactively in relevant contexts), `normal` (standard retrieval weight), or `low` (archive-grade, retrieve only on direct queries). Default is `normal`
- **Expiration (optional)**: Date after which this knowledge should be flagged as potentially stale — useful for time-sensitive competitive intel, seasonal campaign data, or pricing information that changes quarterly. No default (knowledge persists indefinitely unless expired)
- **Related entries (optional)**: References to existing stored knowledge this entry connects to — enables knowledge graph linking and richer cross-reference retrieval
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Prepare content for storage**: Run `memory-manager.py --action prepare-store` with `content_type`, `tags`, and source context. The script normalizes the content, generates a SHA-256 content hash, structures the metadata payload (brand_slug, content_type, tags, source, timestamp, priority, expiration), and validates that all required fields are present. If tags were not provided, auto-generate them from content analysis. 3. **Check for duplicates**: Compare the content hash against the local index at `~/.claude-marketing/brands/{slug}/memory/`. If a match exists, report the duplicate — show the existing entry's tags, date, and summary — and offer to update its metadata (add new tags, refresh timestamp, change priority) rather than creating a duplicate. If no match, proceed to storage. 4. **Check configured memory services**: Run `python "${CLAUDE_PLUGIN_ROOT}/scripts/memory-manager.py" --brand {slug} --action get-memory-status`. Note: this inspects **environment variables only** (e.g. whether `PINECONE_API_KEY` is set) — it does NOT open a live connection, and it does NOT measure storage capacity or index health. Treat its output as "which backends are configured," not "which backends are reachable." If no vector-DB env var is set, store locally and recommend connecting a vector DB for cross-session access. 5. **Store via vector database MCP (only if one is connected)**: DMP does not bundle a memory MCP — nothing is connected by default. If you have a working vector-DB MCP server connected (e.g. Pinecone), send the prepared payload to it for embedding and storage with all metadata. If you also have a working cross-session memory server connected, sync the entry there; if you have a working knowledge-graph server connected and related entries were specified, create relationship edges. If none is connected, store locally. See `skills/context-engine/memory-architecture.md` for the layer catalog and which packages are verified-real. 6. **Update local index**: Run `memory-manager.py --action log-stored` to register the new entry in the local content hash registry with storage ID, vector DB reference, timestamp, and priority. Update sync state so future `/digital-marketing-pro:sync-memory` runs skip this item as already persisted. 7. **Confirm storage**: Present the storage confirmation with all details — what was stored, where it was stored, metadata applied, an
Read more
name: save-knowledge description: "Save brand knowledge to memory. Use when: persisting campaign learnings, guidelines, or competitive intel for retrieval."
/digital-marketing-pro:save-knowledge
Purpose
Save brand knowledge to the persistent memory layer (a vector database you've connected — for example Pinecone via `@pinecone-database/mcp`) for semantic retrieval in future sessions. Stores campaign learnings, competitive intelligence, brand guidelines, and performance insights with proper metadata tagging so that valuable knowledge is never lost between sessions. Every stored item is content-hashed for deduplication, tagged with brand context, and indexed for natural language search — turning ad-hoc learnings into durable institutional memory that every agent can draw from. Designed for targeted, intentional knowledge capture — for bulk session syncing, use `/digital-marketing-pro:sync-memory` instead.
Input Required
The user must provide (or will be prompted for):
- **Content to store**: The knowledge to save — can be plain text typed directly, a reference to content in the current conversation (e.g., "save that email analysis we just did"), structured data from a campaign report or audit, or a URL to external research. Content is stored as-is with optional summarization for the index entry
- **Content type**: One of: `guideline` (brand rules, voice standards, style restrictions), `campaign-learning` (what worked or failed in a campaign with supporting evidence), `competitive-intel` (competitor findings, positioning, pricing, strategy moves), `performance-insight` (metrics, benchmarks, trends, statistical patterns), or `brand-asset` (approved copy, templates, creative references, messaging frameworks)
- **Tags**: Descriptive tags for filtered retrieval — e.g., "email", "q4-2025", "subject-lines", "audience-millennials", "paid-social", "black-friday". If not provided, auto-suggested based on content analysis using brand context, industry taxonomy, and channel detection. Multiple tags encouraged for richer retrieval
- **Source context**: Where this knowledge originated — current session analysis, imported report, campaign retrospective, external research, competitor monitoring, or team input. Used for provenance tracking, credibility weighting during retrieval, and audit trail compliance
- **Priority (optional)**: `high` (surface this knowledge proactively in relevant contexts), `normal` (standard retrieval weight), or `low` (archive-grade, retrieve only on direct queries). Default is `normal`
- **Expiration (optional)**: Date after which this knowledge should be flagged as potentially stale — useful for time-sensitive competitive intel, seasonal campaign data, or pricing information that changes quarterly. No default (knowledge persists indefinitely unless expired)
- **Related entries (optional)**: References to existing stored knowledge this entry connects to — enables knowledge graph linking and richer cross-reference retrieval
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Prepare content for storage**: Run `memory-manager.py --action prepare-store` with `content_type`, `tags`, and source context. The script normalizes the content, generates a SHA-256 content hash, structures the metadata payload (brand_slug, content_type, tags, source, timestamp, priority, expiration), and validates that all required fields are present. If tags were not provided, auto-generate them from content analysis. 3. **Check for duplicates**: Compare the content hash against the local index at `~/.claude-marketing/brands/{slug}/memory/`. If a match exists, report the duplicate — show the existing entry's tags, date, and summary — and offer to update its metadata (add new tags, refresh timestamp, change priority) rather than creating a duplicate. If no match, proceed to storage. 4. **Check configured memory services**: Run `python "${CLAUDE_PLUGIN_ROOT}/scripts/memory-manager.py" --brand {slug} --action get-memory-status`. Note: this inspects **environment variables only** (e.g. whether `PINECONE_API_KEY` is set) — it does NOT open a live connection, and it does NOT measure storage capacity or index health. Treat its output as "which backends are configured," not "which backends are reachable." If no vector-DB env var is set, store locally and recommend connecting a vector DB for cross-session access. 5. **Store via vector database MCP (only if one is connected)**: DMP does not bundle a memory MCP — nothing is connected by default. If you have a working vector-DB MCP server connected (e.g. Pinecone), send the prepared payload to it for embedding and storage with all metadata. If you also have a working cross-session memory server connected, sync the entry there; if you have a working knowledge-graph server connected and related entries were specified, create relationship edges. If none is connected, store locally. See `skills/context-engine/memory-architecture.md` for the layer catalog and which packages are verified-real. 6. **Update local index**: Run `memory-manager.py --action log-stored` to register the new entry in the local content hash registry with storage ID, vector DB reference, timestamp, and priority. Update sync state so future `/digital-marketing-pro:sync-memory` runs skip this item as already persisted. 7. **Confirm storage**: Present the storage confirmation with all details — what was stored, where it was stored, metadata applied, an
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
Other skills on digital-marketing-pro.
- /ab-test-plan
Design A/B and multivariate tests. Use when: sample size calculation, testing hypothesis, CRO experimentation.
Open skill - /ad-creative
Generate platform-specific ad copy. Use when: Google RSA, Meta, LinkedIn, TikTok ad variations with quality scoring.
Open skill - /add-integration
Add MCP server integrations. Use when: connecting a custom tool, API, or service to the plugin via .mcp.json.
Open skill - /aeo-audit
Audit AI search visibility. Use when: checking brand presence in ChatGPT, Perplexity, AI Overviews, Gemini.
Open skill - /aeo-geo
Optimize AI engine visibility. Use when: AEO/GEO strategy, citation optimization, entity consistency across AI platforms.
Open skill - /agency-dashboard
Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot
Open skill

