Help us improve
Share bugs, ideas, or general feedback.
From aria-knowledge
Researches a question by first checking existing knowledge, then drafts and saves a knowledge doc after user review. Fast path from question to knowledge without a backlog.
npx claudepluginhub mikeprasad/aria-knowledge --plugin aria-knowledgeHow this skill is triggered — by the user, by Claude, or both
Slash command
/aria-knowledge:ask <question><question>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Research a question, check if the answer already exists in the knowledge base, and if not, draft a knowledge doc that saves directly to promoted files after user review. Fast path from question to knowledge — no backlog intermediary.
Queries the knowledge base with a question, synthesizes answers from relevant KB files using keyword matching and indexes, and optionally files results as new KB articles.
Conducts deep research on topics or indexes local files/URLs into a git-versioned knowledge base using web search, fetch, and structured templates.
Capture knowledge — solutions, context docs, learnings, and principles. Use after fixing non-trivial bugs, creating context for AI, or discovering patterns worth preserving. Triggers: compound, document solution, capture fix, save solution, knowledge compound, document this, save this fix, context, create context, update context, build context, learn, save learning, remember this.
Share bugs, ideas, or general feedback.
Research a question, check if the answer already exists in the knowledge base, and if not, draft a knowledge doc that saves directly to promoted files after user review. Fast path from question to knowledge — no backlog intermediary.
Canonical resolution: This is the Claude Code variant. When both plugin-claude-code and plugin-claude-cowork are loaded in the same session (most common in Claude Desktop), bare /ask resolves to this skill — aria-knowledge (Code) is the canonical owner of all 24 dual-port skills per ADR-094 §Part 1. The Cowork variant is namespaced-only: /aria-cowork:ask.
Before Step 0: Check that the Bash tool is available in this session. If Bash is NOT available (you are running in Claude Cowork or another non-Code runtime), surface the following notification and wait for explicit user confirmation:
⚠️ Runtime mismatch — you invoked aria-knowledge's
/askfrom a non-Code runtime.Behavior is largely the same in both runtimes; for the Cowork-native variant (reads from the attached knowledge folder rather than
~/.claude/aria-knowledge.local.md), use/aria-cowork:ask.Use
/aria-cowork:askinstead? (y/n)
Wait for an explicit reply:
y / yes — Use the Skill tool to invoke aria-cowork:ask with the same arguments the user provided to this invocation. Do not proceed with this skill's steps; the cowork variant takes over and runs to completion. This is the default-yes path — auto-redirect is the helpful action.n / no — Proceed with this (aria-knowledge) variant anyway despite the runtime mismatch. The user has explicitly opted in.This gate applies even when mode = auto per ADR-094 §Part 3. Auto mode's "implicit-yes on all gates" rule is suspended for the runtime-mismatch check — auto trusts that the user invoked the correct variant, and this gate enforces that precondition. All other auto-mode gates remain bypassed. The friction cost is now low: on y, the auto-redirect runs the correct variant with the original args.
If Bash is available, proceed to Step 0.
Read ~/.claude/aria-knowledge.local.md and extract knowledge_folder. If the file doesn't exist, stop: "aria-knowledge is not configured. Run /setup to get started."
Use {knowledge_folder} as the base path for all file operations in subsequent steps.
The user provides a question as the argument. If no argument is provided, ask: "What would you like to know?"
Extract the core topic and likely tags from the question for use in Step 2.
Before researching, check if the answer already exists:
Resolve aliases first (added 2.16.0): if {knowledge_folder}/aliases.md exists, parse the alias→canonical map and replace any tag token in the question that matches an alias with its canonical form before the index lookup. No notification line needed — this is internal to /ask's coarse check (/context is the surface that surfaces resolution notifications).
If {knowledge_folder}/index.md exists, extract tags from the (post-alias-resolution) question and check for matching files in both the ## Tag Index section AND the ## Semantic Hints Index section. Tag matching is exact equality (existing behavior); hint matching is substring (case-insensitive, hyphen-normalized) — same rule as /context Step 4. A hint match counts the same as a tag match for partial-match detection. (Added 2.16.0.)
Scan headings of files in approaches/, guides/, references/, decisions/ for topic overlap
Check intake/ backlogs for pending items on the same topic
If a strong match is found: Present the existing file(s) to the user:
"This may already be covered in [filename]. Want me to load it? Or research fresh?"
If no match: Proceed to Step 3.
Answer the question using available sources:
Synthesize a clear, complete answer. Focus on practical, actionable knowledge — not textbook definitions.
Based on the answer content, suggest where it belongs:
| Content type | Category | Example |
|---|---|---|
| How to do X (proven method) | approaches/ | API pagination patterns |
| How X works (operational) | guides/ | Supabase auth setup |
| What others say about X | references/ | Stripe webhook best practices |
| We chose X because Y | decisions/ | Why cursor over offset pagination |
| X must/must not (principle) | rules/ | Rare — usually via /audit-knowledge |
Write a draft in the standard format for the suggested category:
---
tags: [detected tags from question and answer]
---
# [Title]
**Last updated:** YYYY-MM-DD
[Answer content — structured with sections as appropriate]
## Related
[Links to any existing knowledge files that connect to this topic]
If Step 2 found a partial match, note: "Related: [existing file] — consider whether this should update that file instead of creating a new one."
Show the draft with metadata:
## /ask Result
**Question:** [original question]
**Category:** [suggested category]
**File:** [suggested filename in kebab-case]
**Tags:** [detected tags]
[Draft content]
Save to {knowledge_folder}/[category]/[filename]? (yes / edit / change category / reject)
Based on user response:
After saving, confirm: "Saved to [path]. Run /index to update the tag index."
/ask invocations.