From b17z-sage
Recall and save insights using sage_recall_knowledge and sage_save_knowledge MCP tools
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin b17z-sageThis skill uses the workspace's default tool permissions.
You have access to a knowledge base of stored insights, decisions, and research findings. When a query relates to stored knowledge, relevant items are automatically injected into your context.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
You have access to a knowledge base of stored insights, decisions, and research findings. When a query relates to stored knowledge, relevant items are automatically injected into your context.
Knowledge items are stored with keyword triggers. When your query matches those triggers, the relevant knowledge is automatically recalled and injected.
You'll see a notification like:
Knowledge recalled (2)
- gdpr-summary (~450 tokens)
- consent-patterns (~280 tokens)
Knowledge items capture durable insights useful across sessions:
| Type | Example |
|---|---|
| Research conclusions | "GDPR Article 6 requires explicit consent for AI training" |
| Validated decisions | "We chose PostgreSQL over MongoDB because..." |
| Domain expertise | API patterns, regulatory summaries, technical constraints |
| User preferences | "Prefers academic sources", "Wants concise answers" |
| Project context | Tech stack, architecture decisions, constraints |
~/.sage/knowledge/
index.yaml # Registry with triggers
{knowledge-id}.md # Knowledge content files
<project>/.sage/knowledge/
index.yaml # Project-scoped registry
{knowledge-id}.md # Project-scoped knowledge
Each item has:
sage_save_knowledge(
knowledge_id="gdpr-summary",
content="GDPR Article 6 requires...",
keywords=["gdpr", "privacy", "consent"],
)
sage knowledge add notes.md --id gdpr-summary --keywords "gdpr,privacy,consent"
sage knowledge add api-guide.md --id api-patterns --keywords "api,rest" --skill web-dev
Say "save this as knowledge" or "remember this" after discovering something worth preserving.
Just ask questions. If your query matches stored knowledge, it's injected automatically.
sage_recall_knowledge(query="what you're working on")
sage knowledge match "How does GDPR affect our API?"
sage_update_knowledge(
knowledge_id="the-id",
content="Updated content",
)
sage_deprecate_knowledge(
knowledge_id="the-id",
reason="Superseded by new architecture",
)
sage_archive_knowledge(knowledge_id="the-id")
sage_remove_knowledge(knowledge_id="the-id")
MCP tool results return structured data. Always format Sage outputs nicely in your response rather than relying on raw tool output.
When presenting recalled knowledge:
## ๐ jwt-auth-pattern
*Source: auth system analysis*
JWT authentication uses access/refresh token pairs. Access tokens are
short-lived (15min), refresh tokens longer (7 days). Store refresh tokens
in httponly cookies, access tokens in memory only.
**Code References:**
- `auth/tokens.py::create_access_token` โ implements token generation
- `auth/tokens.py::create_refresh_token` โ implements refresh flow
When knowledge links to code, show the chain:
The rate limiting implementation is in `auth/middleware.py:RateLimiter`:
- Uses sliding window algorithm
- 5 attempts/minute per IP, 20/hour
- Lockout triggers email notification
For multiple items, use a compact summary first:
Found **3 relevant items**: jwt-auth-pattern, rate-limiting, session-handling
### jwt-auth-pattern
[content]
### rate-limiting
[content]
Watch for staleness indicators in code links:
[!] โ Code has changed since knowledge was saved; may need review[+] โ Code supports the knowledge[~] โ Code provides contextTrack what didn't work to avoid repeating mistakes.
sage_record_failure(
failure_id="jwt-localstorage",
approach="Storing refresh tokens in localStorage",
why_failed="XSS vulnerability - any JS can read localStorage",
learned="Use httpOnly cookies for refresh tokens",
keywords=["jwt", "refresh", "token", "localstorage"],
)
sage_list_failures(limit=10)
## โ ๏ธ jwt-localstorage
**Approach:** Storing refresh tokens in localStorage
**Why failed:** XSS vulnerability - any JS can read localStorage
**Learned:** Use httpOnly cookies for refresh tokens
Failures are automatically recalled at session start when relevant to the current context.
Connect related knowledge items:
sage_link_knowledge(
source_id="auth-patterns",
target_id="jwt-security",
relation="related", # related | supersedes | contradicts | extends
note="Both cover authentication best practices",
bidirectional=True,
)
When recalling linked knowledge, show the connections:
## auth-patterns
[content]
**Links:**
- โ jwt-security [related] โ Both cover auth best practices
- โ oauth-integration [extends] โ OAuth builds on these patterns