> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphify.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The PyPI package is graphifyy, with two y's. The command is graphify.
> /graphify . is typed in an assistant chat, not in a shell.
> Use only commands, flags, and endpoints shown on these pages. Do not invent one.
> Choose the surface before you open a page. Local (Graphify Local) is the graphifyy package on the machine: the skill, the CLI, and the ten-tool MCP. Its pages are the Open Source tab (/open-source/) and the Graphify Local tab on each Integrations page. Graphify is the hosted workspace and https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). Its pages are the Graphify tab (/platform/, /concepts/) and the Graphify (hosted) tab on each Integrations page. Prefer Graphify unless the user asks for a local or offline setup. Cookbooks (/cookbooks/) and /mcp/docs-search apply to both. Each page's source frontmatter records this as surface: local, cloud, or both. Buildkite is the CI integration.
> In llms.txt, tell the surface from the page path. Graphify: /platform/ and /concepts/. Local: /open-source/. Most /integrations/ pages cover both, with a Graphify (hosted) tab and a Graphify Local tab. Everything else applies to both.
> graphifyy release notes are published at https://github.com/Graphify-Labs/graphify/releases and https://graphify.com/changelog. The current package version is on PyPI (https://pypi.org/project/graphifyy/).
> The official site is https://graphify.com. These docs are https://docs.graphify.com.
> The local MCP server is the ten tools in the MCP tool reference and reads a graph on the machine. The hosted server is https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). The JetBrains, ChatGPT, Codex, and Dots, and Vercel pages use the hosted server, not the ten-tool list. On pages with tabs, the Graphify (hosted) tab uses the hosted server and the Graphify Local tab uses the local skill or the ten-tool server.
> Read https://docs.graphify.com/llms.txt, then open one page's .md link. Use https://docs.graphify.com/llms-full.txt only when one page is not enough.

# Record useful findings

> Save useful findings from graph queries in graphify and turn previous investigations into lessons your assistant can reuse.

Work memory records what you learned while using the graph. It is an optional layer over graph exploration, not a replacement for current source evidence.

## Save a result

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify save-result --question "Where is email normalized?" \
  --answer "normalize_email handles normalization before lookup." \
  --nodes normalize_email --outcome useful
```

Use `useful`, `dead_end`, or `corrected` for the outcome. Replace the example with findings you actually verified in your project.

## Reflect on prior results

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify reflect
graphify reflect --if-stale
```

The default lessons file is under `graphify-out/reflections/LESSONS.md`. To relate lessons to the current graph:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify reflect --graph graphify-out/graph.json
```

This can produce a learning overlay that marks nodes as preferred, tentative, or contested. Query and explain output can show lesson hints, including a prompt to re-verify when source has changed.

## Keep lessons grounded

A previously useful answer can become stale. Record the nodes involved, keep outcomes specific, and check the current source before using a lesson to justify a change. Share memory files only with people who can access their underlying source context.

## Run it on a real repository

These examples come from a code-only graph of the open-source [httpx](https://github.com/encode/httpx) repository, built with Graphify Local 0.9.97. Your counts will differ.

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
$ graphify save-result --question "Where are redirects followed?" \
    --answer "Client._send_handling_redirects" \
    --nodes "_send_handling_redirects" --outcome useful
Saved to graphify-out/memory/query_20261028_133846_eb497924_where_are_redirects_followed.md

$ graphify reflect --graph graphify-out/graph.json
Reflected 1 memories (1 useful, 0 dead ends, 0 corrected) -> graphify-out/reflections/LESSONS.md
```

The first lines of the generated `LESSONS.md`:

```markdown theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
# Lessons

_Auto-generated by `graphify reflect` from 1 session memory in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._

## Summary

- 1 useful · 0 dead ends · 0 corrected · 0 unmarked
```

With a single memory, the Lessons section reads "No marked outcomes yet". A node becomes preferred only once enough distinct useful results agree; see `--min-corroboration` below.

## Flags

| Command | Flag | What it does |
| - | - | - |
| `save-result` | `--question Q` / `--answer A` | The question and the answer you're saving. |
| `save-result` | `--type T` | `query`, `path_query` or `explain`. The default is `query`. |
| `save-result` | `--nodes N1 N2 ...` | The node labels the answer cites. |
| `save-result` | `--outcome O` | `useful`, `dead_end` or `corrected`. |
| `save-result` | `--correction TEXT` | The right answer. Use it with `--outcome corrected`. |
| both | `--memory-dir DIR` | Where memories are stored. The default is `graphify-out/memory`. |
| `reflect` | `--out FILE` | The output path. The default is `graphify-out/reflections/LESSONS.md`. |
| `reflect` | `--graph PATH` | Groups memories by community and drops nodes that no longer exist. |
| `reflect` | `--half-life-days N` | A signal's weight halves every N days. The default is 30. |
| `reflect` | `--min-corroboration N` | How many distinct useful results a node needs before it's preferred. The default is 2. |

## What a saved result looks like

Each `save-result` writes a Markdown file with YAML frontmatter, so it's easy to read, diff and grep:

```markdown theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
---
type: "query"
date: "2026-10-28T13:38:46.613425+00:00"
question: "Where are redirects followed?"
contributor: "graphify"
outcome: "useful"
source_nodes: ["_send_handling_redirects"]
---

# Q: Where are redirects followed?

## Answer

Client._send_handling_redirects

## Outcome

- Signal: useful
```

To record a wrong lead, save it with `--outcome dead_end`. To record a fix, use `--outcome corrected --correction "..."`. The next `reflect` run counts both.

## FAQ

**Does `reflect` use an LLM?** No. The output is deterministic: the same memories give the same file.

**Where do memories live?** As Markdown files under `graphify-out/memory/`. You can read them, diff them or delete them like any other file.

**Should I commit them?** That's up to you. They're plain files, so they can go through review like code.

## Next steps

> **[Try it in Graphify](https://docs.graphify.com/platform/quickstart.md)**
>
> We build and host the graph for you. Start with a 14-day Pro trial, then keep up to 3 repositories on Free. No card required.

> **[Agent memory](https://docs.graphify.com/platform/memory.md)**
>
> Memory your agents share in a Cloud workspace.

> **[Export and reuse your graph](https://docs.graphify.com/open-source/features/exports.md)**
>
> Turn the graph into HTML, JSON, and more.

[PreviousKeep the graph current](https://docs.graphify.com/open-source/features/incremental-updates.md)
[NextExport and reuse your graph](https://docs.graphify.com/open-source/features/exports.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.