{"id":14502,"plugin_id":"plugin_asdk_app_6aaae3ab7b1081918c3bb0921689fe15","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:09:40.210Z","digest":"04762a48d6a670adcffab80e5d0cb3e5e3a1036fae62d9b55ffb5dd831a6636a","against":null,"payload":{"description":"Recall, store, and manage knowledge in the user's GoodMem Cloud instance, and add or configure its models. Use when stored project or team knowledge may answer a question, when the user asks to save or organize knowledge, or when they ask to create, add, or set up an embedder, embedding model, reranker, or LLM on GoodMem — model setup is a one-time console link, never code. Use the SDK skill only when the user explicitly asks to write code.","included_files":[],"name":"using-goodmem-memory","skill_md_contents":"---\nname: using-goodmem-memory\ndescription: Recall, store, and manage knowledge in the user's GoodMem Cloud instance, and add or configure its models. Use when stored project or team knowledge may answer a question, when the user asks to save or organize knowledge, or when they ask to create, add, or set up an embedder, embedding model, reranker, or LLM on GoodMem — model setup is a one-time console link, never code. Use the SDK skill only when the user explicitly asks to write code.\n---\n\n# Using GoodMem memory\n\nTreat GoodMem as the user's persistent project or team memory. The connection is\nalways through GoodMem's hosted gateway to the GoodMem Cloud instance selected\nduring sign-in. Never ask for an instance URL, API key, or local GoodMem server.\n\n## Recall relevant knowledge\n\nWhen stored decisions, notes, documents, project context, or earlier conversations\ncould plausibly answer the user's question, call `goodmem_memories_retrieve`\nwithout asking permission first. Skip retrieval for general knowledge, arithmetic,\nor questions fully answered by the current conversation.\n\n- Scope to `space_ids` when the relevant space is clear. Otherwise search all\n  spaces; use `goodmem_spaces_list` when seeing their names would help.\n- Use `metadata_filter` for constraints represented by metadata, such as filename,\n  type, topic, or year.\n- Use `answer: true` when synthesis across many memories would materially help.\n  Otherwise retrieve passages and answer from them directly.\n- Report `warnings` and `skipped_spaces` when retrieval is partial. If\n  `synthesis_error` is present, answer from the usable passages and explain the\n  limitation. Per-space fallback interleaves local rankings; do not interpret\n  its scores as one global relevance order.\n- Name the source memory, document, or space. Prefer the user's retrieved record\n  over general assumptions and call out conflicts.\n- If nothing relevant is returned, say so plainly. Never invent a memory or imply\n  that an unindexed memory appeared in search.\n\nUse `goodmem_memories_content` for stored text, following `next_offset` while\n`truncated` is true, and\n`goodmem_memories_pages` to navigate page-oriented documents.\n\n## Create and organize knowledge\n\nWrite only when the user asks to save, remember, ingest, or organize something.\n\n1. Call `goodmem_spaces_list` and reuse an obviously matching space.\n2. Otherwise call `goodmem_spaces_create` with a clear topic or project name and\n   tell the user which space was chosen. The instance's embedder is selected\n   automatically; if several exist, use an `embedder_name` offered by the tool.\n3. For text, create one coherent memory per fact, passage, or natural section\n   with useful typed metadata such as topic, source, filename, page, or date.\n   For an uploaded file, use `goodmem_memories_upload` to save the original as\n   one memory; do not extract and save each page yourself.\n\nFor conversations, follow the `save-conversation` skill. For files, follow the\n`work-with-documents` skill.\n\nIf space creation reports that no embedder exists, relay its one-time Quick Start\nlink exactly. Quick Start sets up an embedding model, any chat model or reranker\nsupported by the provider, and an optional first space from a provider key entered\non the console page. For an explicit initial-setup request, call\n`goodmem_console_setup` with `kind: \"quick_start\"`.\n\nWhen the user finishes Quick Start, call `goodmem_spaces_list` again. Reuse the\nspace it created if suitable for the user's task; do not blindly retry the failed\nspace creation and create a duplicate. If the user skipped creating a space, or\nneeds a separate one, create it using the now-configured embedder and continue\nthe original save. If setup was incomplete, explain what is still needed.\n\n## Add or change models — embedder, reranker, LLM\n\nOn GoodMem, \"create an LLM\", \"add an embedder\", or \"set up a reranker\" means\nregistering a model configuration on the user's GoodMem Cloud instance. It is a\nconsole action, identical on every surface:\n\n1. Call `goodmem_console_setup` with `kind` set to `embedder`, `reranker`, or\n   `llm`. An `embedder` request automatically opens Quick Start when the instance\n   has no embedders; check the returned `kind`.\n2. Relay the returned link verbatim, noting it works once, expires in about\n   30 minutes, and asks for the user's own model provider API key on the page.\n3. When the user says they are done, follow the space-discovery steps above if\n   the returned `kind` was `quick_start`; otherwise retry whatever needed the model.\n\nNever write code, scaffold a project, or touch provider credentials for this —\nthe API key belongs on the console page, not in the chat. An embedder makes\nmemories searchable, a reranker sharpens retrieval order, and an LLM enables\nsynthesized answers. Write integration code only when the user explicitly asks\nfor code; then follow the `goodmem-sdk` skill.\n\n## Processing and failures\n\nIngestion is asynchronous. Keep saving instead of polling after every memory.\nA memory is searchable only at `COMPLETED`; do not describe `PENDING` or\n`PROCESSING` content as searchable.\n\nWhen a response reports `failed_count`, state how many memories failed. Use\n`goodmem_memories_list` to inspect statuses and `goodmem_memories_get` when the\nprocessing error is needed. Explain that model and provider-key repairs happen in\nthe GoodMem Cloud console. A `not_indexed` result means the content exists but is\nnot available to semantic search.\n\n## Changes and deletion\n\nCreating, updating, and deleting require user intent. Confirm the specific target\nbefore `goodmem_memories_delete`; never loop over a whole space on a vague deletion\nrequest. Keep raw tool output out of the response unless the user asks for it.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}