How Anthropic's Product-Self-Knowledge Skill Ensures Claude Accuracy
Anthropic's product-self-knowledge skill uses a read-only markdown file mounted at /mnt/skills/public/product-self-knowledge/SKILL.md that Claude consults via a system prompt trigger rule whenever product-specific facts are requested, ensuring responses contain only authoritative, up-to-date information rather than hallucinated training data.
The asgeirtj/system_prompts_leaks repository reveals how Anthropic implements runtime knowledge retrieval to prevent model hallucinations about Claude's evolving features. By analyzing the leaked system prompts and skill definitions, we can see exactly how the product-self-knowledge skill creates a canonical source of truth that overrides the model's parametric memory.
What Is the Product-Self-Knowledge Skill?
The product-self-knowledge skill is a static markdown file distributed as part of Claude's runtime environment. According to the source code analysis, this file lives at a fixed path: /mnt/skills/public/product-self-knowledge/SKILL.md.
Unlike model weights that remain frozen between deployments, this skill file is mounted read-only during runtime, allowing Anthropic to update product details without retraining the underlying model. The skill contains curated facts about Claude's pricing tiers, API rate limits, supported SDKs, and feature availability.
The Five-Step Accuracy Architecture
The system prompt found in Anthropic/claude-opus-4.6.md implements a rigorous five-step workflow to ensure Claude never relies on stale training data when discussing Anthropic products.
Step 1: Skill Registration and Read-Only Mounting
During initialization, Claude registers the product-self-knowledge skill with a clear Location line pointing to /mnt/skills/public/product-self-knowledge/SKILL.md. The file system mount is read-only, guaranteeing that the content cannot be altered at runtime by the model or external processes.
This immutability ensures that every lookup retrieves the exact version approved by Anthropic's product teams, preventing runtime corruption or tampering.
Step 2: Trigger Detection via System Prompt Rules
The system prompt contains an explicit trigger rule at lines 65-67: "Stop and consult this skill whenever your response would include specific facts about Anthropic's products."
During generation, Claude scans both the user request and its tentative output for keywords such as "Claude API", "Claude pricing", "Claude Code", or "Claude Pro". When these triggers match, the model halts its standard reasoning process to initiate a skill lookup, avoiding reliance on potentially outdated parametric knowledge.
Step 3: Runtime Lookup from Canonical Storage
When a trigger fires, Claude pauses generation and reads the SKILL.md file verbatim. This runtime lookup bypasses the model's parametric memory entirely, retrieving the authoritative markdown content directly from the mounted filesystem.
The skill file contains structured data about current plan names, feature caps, supported operating systems, and API limits, ensuring the model accesses the single source of truth rather than generating approximate answers from training data.
Step 4: Verbatim Injection into Responses
The retrieved content is inserted into the final answer without modification. The system prompt instructs Claude not to modify the facts, ensuring that users see the exact text maintained by Anthropic.
This canonical injection prevents the model from paraphrasing or embellishing product details, which could introduce subtle errors or hallucinations. The response contains the precise wording from the skill file, guaranteeing consistency across all Claude instances.
Step 5: Continuous Maintenance Without Retraining
Product teams update the markdown file whenever features change, pricing updates, or new SDKs release. Because the file lives in the mounted /mnt/skills/public directory, every new Claude deployment automatically picks up the latest version.
This externalized maintenance workflow keeps product information accurate without requiring model retraining or weight updates, allowing Anthropic to respond to product changes within deployment cycles rather than model training timelines.
Source Code Implementation Details
The implementation relies on specific files within the asgeirtj/system_prompts_leaks repository. The primary system prompt defining this behavior resides in Anthropic/claude-opus-4.6.md, specifically at lines 65-67 where the trigger rule is defined:
"Stop and consult this skill whenever your response would include specific facts about Anthropic's products."
The skill file itself is referenced as a static asset at /mnt/skills/public/product-self-knowledge/SKILL.md. Historical versions of this implementation can be found in Anthropic/old/claude-opus-4.5.md, showing the evolution of the trigger detection logic. An HTML rendering of the system prompt is also available in Anthropic/claude.html for web-based interface integrations.
Practical Integration Examples
When building applications with the Anthropic API, you can rely on this skill architecture to ensure accurate product responses. The following examples demonstrate how the skill functions in practice.
Automatic Trigger via Standard API Calls
The simplest integration relies on the built-in system prompt. When you ask about Claude products, the model automatically consults the skill:
{
"model": "claude-3-opus-20240229",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "What are the pricing tiers for Claude.ai and how many requests per month does the Pro plan allow?"
}
]
}
The model detects the product-related keywords and reads /mnt/skills/public/product-self-knowledge/SKILL.md before generating the response, ensuring the pricing details match Anthropic's current offerings.
Explicit Tool-Style Invocation
For integrations that expose the skill as a callable tool, you can explicitly trigger the lookup:
{
"model": "claude-3-opus-20240229",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Give me the latest Claude API rate limits."},
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"name": "read_file",
"input": { "path": "/mnt/skills/public/product-self-knowledge/SKILL.md" }
}
]
}
]
}
This pattern retrieves the markdown verbatim, ensuring the rate limits reflect the exact values maintained by Anthropic's product teams.
Post-Processing Guard for UI Layers
When building client-side applications, implement a guard to ensure product information accuracy even if the model bypasses the trigger:
def ensure_product_info(response: str) -> str:
"""
Scan Claude's answer for product-related placeholders.
If a placeholder is found, replace it with the latest SKILL.md content.
"""
if "[PRODUCT_INFO]" in response:
with open("/mnt/skills/public/product-self-knowledge/SKILL.md") as f:
prod_info = f.read()
return response.replace("[PRODUCT_INFO]", prod_info)
return response
This defensive programming pattern ensures that even downstream modifications cannot override the canonical product data.
Summary
- The product-self-knowledge skill is a static markdown file mounted at
/mnt/skills/public/product-self-knowledge/SKILL.mdthat serves as the single source of truth for Claude product information. - A trigger rule in the system prompt (
Anthropic/claude-opus-4.6.md, lines 65-67) forces the model to consult this skill whenever product-specific facts are requested. - The read-only mount guarantees immutability at runtime, while externalized maintenance allows Anthropic to update product details without model retraining.
- Runtime lookup bypasses parametric memory entirely, injecting verbatim content from the skill file to eliminate hallucinations about pricing, API limits, and feature availability.
Frequently Asked Questions
How does the product-self-knowledge skill prevent hallucinations about Claude pricing?
The skill prevents pricing hallucinations by acting as a runtime knowledge base that overrides the model's training data. When the system prompt detects pricing-related keywords, Claude stops generating and reads the canonical markdown file at /mnt/skills/public/product-self-knowledge/SKILL.md. This file contains the current pricing tiers and request limits maintained by Anthropic's product teams, ensuring users receive exact, up-to-date figures rather than approximations from the model's parametric memory.
What happens if the skill file is missing or corrupted during a Claude request?
Because the skill file is mounted as a read-only filesystem at /mnt/skills/public/product-self-knowledge/SKILL.md, corruption or accidental deletion during runtime is impossible. The mount is part of the deployment infrastructure, meaning the file is baked into the container or virtual machine image before Claude initializes. If the file were somehow missing from the image, the system prompt's trigger rule would fail to locate the skill, and Claude would likely return an error or refuse to answer product-specific questions rather than hallucinate an answer.
Can developers customize the product-self-knowledge skill for their own Claude deployments?
No, developers cannot customize the product-self-knowledge skill in standard Claude deployments through the Anthropic API. The skill resides in a read-only mount at /mnt/skills/public/product-self-knowledge/SKILL.md that is controlled exclusively by Anthropic's internal product teams. While the leaked system prompts from the asgeirtj/system_prompts_leaks repository show how the skill is referenced, individual API users cannot modify this file or mount their own skills to the same path. Developers seeking similar functionality must implement external retrieval augmented generation (RAG) systems in their application layers.
How often is the product-self-knowledge skill updated with new Claude features?
The skill is updated continuously by Anthropic's product teams whenever features change, pricing updates, or new SDKs release. Because the markdown file lives in the mounted /mnt/skills/public directory, every new Claude deployment automatically picks up the latest version without requiring model retraining. This externalized maintenance workflow ensures that the time between a product change and the model's knowledge update is limited to the deployment cycle, typically much faster than retraining a foundation model.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →