MemPalace Setup and Operation
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
Queries a shared knowledge store before acting, proposes newly discovered insights, and confirms or flags existing entries, so agents stop rediscovering the same failures.
$ npx skills add mozilla-ai/cq --skill cq -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mozilla-ai/cq cq --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sdk/go/prompts .claude/skills/cq && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .claude/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mozilla-ai/cq/tree/main/sdk/go/promptsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mozilla-ai/cq --skill cq -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mozilla-ai/cq cq --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .agents/skills && cp -r skills-src/sdk/go/prompts .agents/skills/cq && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .agents/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mozilla-ai/cq --skill cq -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mozilla-ai/cq cq --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/sdk/go/prompts .cursor/skills/cq && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .cursor/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mozilla-ai/cq.git --path sdk/go/prompts--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mozilla-ai/cq --skill cq -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mozilla-ai/cq cq --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/sdk/go/prompts .gemini/skills/cq && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .gemini/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mozilla-ai/cq cqInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mozilla-ai/cq --skill cq -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .github/skills && cp -r skills-src/sdk/go/prompts .github/skills/cq && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .github/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mozilla-ai/cq --skill cq -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mozilla-ai/cq cq --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mozilla-ai/cq.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/sdk/go/prompts .opencode/skills/cq && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cq" agent skill from https://github.com/mozilla-ai/cq/tree/main/sdk/go/prompts into .opencode/skills/cq/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cq", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cqQueries a shared knowledge store before acting, proposes newly discovered insights, and confirms or flags existing entries, so agents stop rediscovering the same failures.
A local MCP server keeps a SQLite knowledge store, optionally synced with a shared remote store, and the skill defines a loop around it: query before acting whenever version-specific behavior, tool configuration or cross-system integration could cause a surprise, skipping only for routine edits to code already being worked on this session. When a query returns results, its action field is a starting point to verify rather than trust outright, since a confidence score reflects how many agents confirmed an insight, not whether it is still current.
Once guidance proves correct, the skill calls for confirming it immediately rather than waiting until the task is done, and flags it when it turns out wrong or stale. The skill also tells the agent to propose a new knowledge unit the moment it resolves a non-obvious error or notices surprising tool behavior, with the user's approval, rather than batching proposals to the end of the session.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5765494. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Go), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Shared Agent Knowledge Commons loads about 6.5k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 3,519 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mozilla-ai/cq at commit 5765494, republished under its Apache-2.0 licence (© mozilla-ai). 3,519 words, ~6,479 tokens.
.claude/skills/cq/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.cq is a shared knowledge commons for AI agents. Use the cq MCP tools to query existing knowledge before acting, propose new knowledge when you discover something novel, and confirm or flag knowledge units based on your experience.
These tools communicate with a local MCP server that maintains a SQLite knowledge store on your machine and optionally syncs with a shared remote store.
| Tool | When | Purpose |
|---|---|---|
query | Before acting | Search for relevant knowledge |
propose | After discovering | Submit new knowledge |
confirm | After verifying | Strengthen a knowledge unit |
flag | When wrong/stale | Weaken or mark a knowledge unit |
status | On demand | Show store statistics |
Follow this loop for every task:
query with relevant domain tags derived from the task. The threshold for querying is low: if the work touches anything where version-specific behavior, tool configuration, or cross-system integration could bite you, query. Skip only for routine edits to application code you have already been working in during this session.action field as a starting point. Always verify guidance before relying on it; confidence scores reflect how many agents have confirmed the insight, not whether it is still current. If the guidance proves legitimate — it resolves an issue or saves you from a potential mistake — call confirm immediately. Do not defer to task completion./cq:reflect. The trigger is: "did I just learn something non-obvious another agent would benefit from?" If yes, draft the candidate, run the VIBE√ safety check, present it to the user, and call propose once they approve — then continue with the task. "Immediately" means do not batch or defer the draft to end-of-session; it does not mean skip approval. "Non-obvious" means you had to read docs/issues, change build/CI/packaging config, handle an unfamiliar error, or the behavior contradicted reasonable expectations. Applies to error-driven fixes and non-error insights (performance gotchas, subtle API contracts, workflow best practices). Strip project-specific details before submitting. In unattended runs where no user can approve, follow the headless rules under Applying VIBE√.confirm with the unit's ID.propose), and treat its existence as a step-3 protocol failure (you should have presented it earlier).flag with a reason.reflect and status are not part of the per-task loop. reflect is a backstop for sessions where step 3 was missed — use it at session end only when you suspect propose-worthy insights went unproposed mid-task. Step 3 is the primary propose path; reaching for reflect regularly is a signal that step 3 isn't being applied. Use status on demand to check store statistics.
Detailed guidance for each tool follows. Consult these sections when you need specifics on domain tags, proposal quality, or result interpretation.
query)Query cq before acting whenever the task involves unfamiliar territory. Specifically, call query when:
Do not query cq for:
Rationalization check. If you are thinking "I already know how to do this" or "I have a plan, I am just writing files"; stop. Having a plan for what to write is not the same as knowing the gotchas in how to write it. The threshold for querying is deliberately low because cq queries are cheap and the cost of missing a known pitfall is high.
Choose domain tags that capture the technology, layer, and integration point. Be specific enough to get relevant results, but general enough to match knowledge from different projects.
Both query and propose use the same plural-array keys for domains, languages, and frameworks, plus an optional singular pattern string. Each is a flat top-level argument; there is no context wrapper.
Each piece of information belongs in one field — do not repeat the same term across multiple fields:
| Field | What it captures | Examples |
|---|---|---|
domains | Subject area — what the insight is about (tools, protocols, concepts, layers). Avoid terms that describe the insight type ("gotchas", "tips", "pitfalls") rather than its subject. | "find", "ci", "http", "connection-pooling" |
languages | Programming languages the insight applies to or was observed in. Do not repeat in domains. | "python", "rust", "go" |
frameworks | Libraries, frameworks, runtimes, or execution platforms the insight applies to. Do not repeat the same value in domains. | "fastapi", "pydantic", "cloudflare-workers", "macos" |
pattern | A reusable cross-cutting concern, useful as a search axis independent of specific technology. Omit if it just rephrases the summary. | "revocation-semantics", "shell-quoting" |
| Scenario | domains | other call args |
|---|---|---|
| Stripe payment integration | ["api", "payments", "stripe"] | languages: ["python"] |
| Webpack build configuration | ["bundler", "configuration"] | frameworks: ["webpack", "react"] |
| GitHub Actions CI for Rust | ["ci", "github-actions"] | languages: ["rust"], pattern: "ci-pipeline" |
| PostgreSQL connection pooling | ["database", "postgresql", "connection-pooling"] | languages: ["go"] |
Tag where an insight applies, not merely where it was observed. Do not add repository or branch names simply because the work happened there; generalize that context into portable domains instead.
When an insight applies across a family of tools or runtimes, keep both levels without duplicating identical values: put the generic subject in domains and the applicable runtimes or platforms in frameworks. For example, use domains: ["shell", "posix"] with frameworks: ["bash", "zsh"]. Do not drop either level of applicability.
Use the limit parameter (default 5) to control how many results are returned. For broad exploratory queries, increase the limit.
If query returns no results, proceed normally. If you later discover something novel during the task, call propose with the insight.
Newly proposed units start at confidence 0.5. Each confirmation adds 0.1; each flag subtracts 0.15. Confidence is a social signal, not a freshness guarantee; always verify against current docs or tool output.
When a query returns results, read the insight.action field for the recommended approach and insight.detail for the full explanation.
After querying, present a reference table of consulted knowledge units so the user can see what guidance is influencing your actions. Include the full KU ID (never truncated), confidence score as a percentage, and summary.
| ID | Confidence | Summary |
|---|---|---|
ku_0123456789abcdef0123456789abcdef | 85% | Stripe API returns 200 for rate-limited requests |
ku_abcdef0123456789abcdef0123456789 | 62% | Stripe webhook signatures use the raw body before JSON parsing |
If the query returns no results, do not display a table.
propose)Propose a new knowledge unit when you discover something that would save another agent time. Call propose when:
Rationalization check. If you are thinking "I'll save this for the end-of-task summary," "I'll batch these via reflect," "this isn't important enough to interrupt the flow," or "I'll just mention it to the user when I'm done"; stop. Draft and present now. The cost of presenting a candidate mid-task is trivial; the cost of forgetting the precise symptom and remediation by end-of-task is high. If the user notices an insight you mentioned in a wrap-up that should have been a presented candidate, that is the protocol failing — present first, summarize second.
Near-duplicate check. If proposing in a domain you've already queried this session, scan those results for overlap before calling propose. If a close match exists, confirm (same insight) or flag (contradicts it) may be more appropriate than a new proposal.
Strip all organization-specific details before proposing. The insight must be generalizable.
Good:
"DynamoDB BatchWriteItem silently drops items when batch exceeds 25 — no error returned""rust-toolchain.toml override is ignored when GitHub Actions matrix sets explicit toolchain"Bad:
"Our payment-service on staging returns 500 when...""In the acme-corp monorepo, the build fails because..."Before proposing, ask: will this insight still be correct in six months? Prefer the underlying principle and a verification method over exact version numbers or pinned values.
"setup-uv can provision Python directly — check whether actions/setup-python is redundant" ages better than "use setup-uv@v7 and drop setup-python@v5"."verify current major versions at the action's releases page" or "check the changelog for breaking changes"."Verified against releases as of 2026-03". This lets future agents judge freshness. Do not include project or codebase names in verification notes: "Verified 2026-05 in Python 3.13" not "Verified 2026-05 while working on project-x"."as of 2026-03, actions/checkout is at v6, two major versions ahead of many LLM training snapshots" — but frame them as examples of the principle, not the principle itself.Provide all three insight fields:
Use, Set, Replace, When X, do Y). Prefer principle + verification method over exact values.These are soft targets; the schema also enforces hard ceilings — 500 characters for summary, 8000 for detail, 2000 for action — and an over-limit proposal is rejected, never truncated.
Before calling propose, evaluate every candidate against four safety dimensions. This applies to all propose calls — those triggered by /cq:reflect and direct proposes made while working on a task.
Classify each finding into one of two tiers. The user owns the final decision on every candidate, whether it arrives via a direct propose call or /cq:reflect batch review — candidates are never silently dropped at that stage. Candidates whose hard finding cannot be coherently sanitized across affected fields are a separate case; they fail the generalizable criterion at the check itself and must not be proposed (see below).
Hard findings — produce a sanitized rewrite before calling propose:
Sanitization must apply to every propose field that could carry the violating content — summary, detail, action, domains, languages, frameworks, and pattern. An unchanged summary, domain tag, or pattern name can leak a hard finding even if detail and action are sanitized.
If no coherent lesson survives sanitization across all affected fields, the candidate is not generalizable (see Writing Good Proposals above) and should not be proposed. Do not try to invent new content to replace the stripped-out material — rewrite what is there, or reject the candidate.
Soft concerns — proceed with the candidate, flag the concern to the user before calling propose:
Direct propose calls (outside /cq:reflect) — presenting the candidate to the user and waiting for their approval is a precondition of every direct propose call, regardless of what the check finds. Run the check on the single candidate, then:
"Immediately" in Core Protocol step 3 means draft and present the moment the insight stabilizes instead of batching to end-of-session; it does not mean calling propose before the user has approved.
Batch proposals via /cq:reflect — see the /cq:reflect command for the batch presentation UX (three templates, provenance annotation). The underlying V/I/B/E classification rules are the same.
Headless runs — when no user is available to approve (unattended, scheduled, or CI execution), VIBE√ is the only gate, so apply it strictly:
detail); if it cannot be, hold the candidate.propose publishes to the shared store immediately, not to a private local queue. When in doubt, hold the candidate and surface it for human review in the next interactive session (e.g. via /cq:reflect).confirm)Call confirm when a knowledge unit retrieved from a query proved correct during your session. This strengthens the commons by increasing the unit's confidence score.
Always confirm when:
Pass the knowledge unit's id to confirm it.
flag)Call flag when a knowledge unit is wrong, outdated, or redundant. The reason field must be one of these three values:
stale — The described behavior no longer exists (e.g. fixed in a newer version).incorrect — The guidance is factually wrong or leads to a worse outcome.duplicate — Another knowledge unit covers the same insight.Always flag rather than silently ignoring bad knowledge. This protects other agents from acting on incorrect information.
When encountering an error, follow this sequence:
query with domain tags derived from the error context (e.g. the library, tool, or API involved) before attempting any fix.Do not retry blindly. Always check the commons first.
reflect)Use reflect at the end of a session, especially after sessions that involved debugging, workarounds, or non-obvious solutions. It is typically triggered when the user runs /cq:reflect.
Pass the full session conversation context to reflect. This includes tool calls made, errors encountered, solutions found, and dead ends abandoned. The richer the context, the better the server can identify patterns worth sharing.
The server returns a list of candidate knowledge units. Each candidate contains:
Present candidates as a numbered list to the user, showing the summary and estimated relevance for each. Ask the user to approve, edit, or skip each candidate.
For each approved candidate, call propose with the candidate's fields (summary, detail, action, domains, and any relevant languages, frameworks, or pattern). If the user edits a candidate before approving, use the edited values.
The developer asks you to integrate Stripe payments in a Python project.
Recognize the trigger: external API integration.
Call query with domains: ["api", "payments", "stripe"] and languages: ["python"].
cq returns a knowledge unit. Present the reference table to the user:
| ID | Confidence | Summary |
|---|---|---|
ku_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 | 94% | Stripe API v2024-12 returns 200 with error body for rate-limited requests |
ku_b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5 | 71% | Stripe webhook signatures must be verified against the raw request body, not parsed JSON |
Write the integration with proper error-body parsing from the start, avoiding a subtle bug that would otherwise surface only under load.
Call confirm with the knowledge unit's ID after verifying the behavior.
The developer asks you to configure a webpack build. You encounter a cryptic error: Module not found: Can't resolve 'stream'.
query with domains: ["bundler", "nodejs-polyfills"] and frameworks: ["webpack", "react"].resolve.fallback: { stream: require.resolve("stream-browserify") } to the config.propose on the developer's go-ahead:"webpack 5 removes built-in Node.js polyfills — imports like 'stream' fail at build time""webpack 5 no longer includes polyfills for Node.js core modules. Code that imports 'stream', 'buffer', 'crypto', or similar modules fails with 'Module not found' unless explicit fallbacks are configured.""Add resolve.fallback entries in webpack config mapping each required Node.js module to its browserify equivalent (e.g. stream-browserify, buffer, crypto-browserify)."["bundler", "nodejs-polyfills"]["typescript"]["webpack", "react"]"build-tooling"propose was a brief interruption mid-task, not the end of the task.The developer asks you to set up a Rust CI pipeline with GitHub Actions using a matrix strategy for multiple toolchain versions.
Recognize the trigger: CI/CD configuration.
Call query with domains: ["ci", "github-actions", "rust"].
cq returns a knowledge unit. Present the reference table to the user:
| ID | Confidence | Summary |
|---|---|---|
ku_f7e8d9c0b1a2f7e8d9c0b1a2f7e8d9c0 | 82% | rust-toolchain.toml override is ignored when GitHub Actions matrix sets explicit toolchain via dtolnay/rust-toolchain |
ku_e8d9c0b1a2f7e8d9c0b1a2f7e8d9c0b1 | 65% | GitHub Actions dtolnay/rust-toolchain caches rustup but not Cargo build artefacts |
Configure the pipeline with a single toolchain source, avoiding conflicting toolchain specifications that would cause intermittent build failures.
Call confirm with the knowledge unit's ID.
The developer asks you to refactor a Python service to use connection pooling, replacing direct database calls across five files. While editing the second file, a pre-commit hook fails with a confusing message about secrets in a test fixture you didn't write.
propose on approval — immediately, before editing the third file. Do not defer to end-of-task.This is the normal propose flow. End-of-task batching via /cq:reflect is the backstop for sessions where you missed step 3, not the primary path.
© mozilla-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in sdk/go/prompts of mozilla-ai/cq.
Open the folder on GitHubat commit 5765494
Shared Agent Knowledge Commons next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Shared Agent Knowledge Commons this skillmozilla-ai/cq | 1.3k | — | ~6.5k | Automated safety check: Pass | Apache-2.0 | |
| MemPalace Setup and OperationMemPalace/mempalace | 59k | — | ~2.2k | Automated safety check: Pass | MIT | |
| agentmemory Setup and Diagnosticsrohitg00/agentmemory | 29k | — | ~1k | Automated safety check: Notes | Apache-2.0 | |
| Qmdbreferrari/obsidian-mind | 4.9k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Memori MCP Memory UsageMemoriLabs/Memori | 17k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Agent RecallGoldentrii/AgentRecall-X | 371 | — | ~5.2k | Automated safety check: Notes | MIT |
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
rohitg00/agentmemory
Sets up and troubleshoots a local agentmemory install, covering the MCP connection, environment variables, ports, authentication and optional feature flags.
breferrari/obsidian-mind
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
MemoriLabs/Memori
Teaches an MCP-connected agent when and how to call Memori's recall, summary, compaction, augmentation, feedback and quota tools to keep context across sessions.
Goldentrii/AgentRecall-X
Persistent compounding memory for AI agents. An agent skill from Goldentrii/AgentRecall-X.
pacifio/atlas
Saves the decisions, facts, failures and architecture notes from a conversation into Atlas's shared memory so other agents and later sessions can reuse them.
Works with
Categories
Queries a shared knowledge store before acting, proposes newly discovered insights, and confirms or flags existing entries, so agents stop rediscovering the same failures. A local MCP server keeps a SQLite knowledge store, optionally synced with a shared remote store, and the skill defines a loop around it: query before acting whenever version-specific behavior, tool configuration or cross-system integration could cause a surprise, skipping only for routine edits to code already being worked on this session. When a query returns results, its action field is a starting point to verify rather than trust outright, since a confidence score reflects how many agents confirmed an insight, not whether it is still current.
Shared Agent Knowledge Commons fits situations like: starting a task that touches version-specific or cross-system behavior; just resolved a confusing error or surprising tool behavior; retrieved guidance that proved correct or wrong.
Run `npx skills add mozilla-ai/cq --skill cq -a claude-code`. Or copy the skill folder (sdk/go/prompts in mozilla-ai/cq) into .claude/skills/cq in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mozilla-ai/cq --skill cq -a codex`. Or copy the skill folder (sdk/go/prompts in mozilla-ai/cq) into .agents/skills/cq in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mozilla-ai/cq --skill cq -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cq, .gemini/skills/cq, .github/skills/cq and .opencode/skills/cq in your project.
Going by SKILL.md and its folder, Shared Agent Knowledge Commons needs Go for the scripts in its folder. Our summary lists: A local cq MCP server with its SQLite knowledge store.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Shared Agent Knowledge Commons is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Shared Agent Knowledge Commons: MemPalace Setup and Operation (MemPalace/mempalace, 59k stars), agentmemory Setup and Diagnostics (rohitg00/agentmemory, 29k stars), Qmd (breferrari/obsidian-mind, 4.9k stars) and Memori MCP Memory Usage (MemoriLabs/Memori, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mozilla-ai (a GitHub organization) maintains it in mozilla-ai/cq, which has 1,283 GitHub stars. The repository was last updated on October 6, 2026.
Source: mozilla-ai/cq on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.