{"slug": "your-agent-forgot-a-decision-you-made-last-week-mine-did-too", "title": "Your agent forgot a decision you made last week. Mine did too.", "summary": "A developer built memgraph, a zero-dependency Node.js CLI that stores decisions, facts and their relationships in a single JSON file committed alongside code, so agents and teams can trace why a choice was made and what superseded it. The tool answers queries like `memgraph why` and runs `memgraph check` as a CI gate that exits 1 on unresolved contradictions, live nodes resting on superseded decisions, or sourceless claims. In the bundled demo graph, check flags a fallback reader still depending on a superseded queue decision and an unsourced open question, while treating a contradiction against a superseded decision as resolved history.", "body_md": "Last month my team reversed a queue decision. Nobody could say why we\n\nhad picked the first design, what evidence it rested on, or who had\n\nsigned off on the replacement. The old design was still half-wired in\n\nas a \"fallback\", quietly depending on the thing we had just replaced.\n\nWe found out in production.\n\nVector RAG remembers *text*. It does not remember *decisions* — what\n\nwas chosen, what it rested on, what contradicted it, and what replaced\n\nit. So I built a tiny local graph for exactly that: **memgraph**.\n\nOne zero-dependency Node.js CLI. No network, no server, no embeddings.\n\nThe store is a single JSON file you can commit next to your code.\n\n```\nmemgraph init\nmemgraph add --type decision --title \"Use Postgres LISTEN/NOTIFY for the queue\" --source \"ADR-014\"\nmemgraph add --type fact --title \"NOTIFY payloads cap at 8000 bytes\" --source \"Postgres docs\"\nmemgraph link m-002 m-001 --relation contradicts\nmemgraph add --type decision --title \"Switch the queue to Redis Streams\" --source \"ADR-019\"\nmemgraph supersede m-001 m-003 --reason \"payload cap makes NOTIFY the wrong tool\"\n```\n\nThree questions it answers, fast:\n\n`memgraph why m-003` — source,\nsupporters, contradictions, supersession.`memgraph check` —\nunresolved contradictions, live nodes resting on superseded ones,\nsourceless claims.`memgraph list` — every node, with\nsuperseded ones marked.\n`memgraph check` exits 1 when it finds an error, so it works as a CI\n\ngate: a PR that introduces a contradiction, or keeps depending on a\n\nsuperseded decision, fails before it merges.\n\nThe repo ships a small team graph — a queue decision, the fact that\n\nkilled it, its replacement, and one leftover fallback still depending\n\non the dead design:\n\n```\nsh examples/run-demo.sh\n```\n\n`memgraph check` on that graph reports exactly two problems: the\n\nfallback reader depends on a superseded decision, and one open\n\nquestion has no source. The contradiction between the payload-cap\n\nfact and the old decision does *not* get flagged — the old decision\n\nwas superseded, so that contradiction is resolved history, not a\n\nlive conflict.\n\nA graph is only as good as what you record. memgraph cannot tell you\n\nwhether a source is *true* — it tells you where every claim came from\n\nand whether the graph still holds together. A decision with no source\n\nis a rumor with formatting; that is why `check` flags it. And when a\n\ndecision changes, supersede it — don't delete it. Deleting history is\n\nhow teams end up re-litigating the same choice every six months.\n\nRepo: [https://github.com/techdevfun/memgraph](https://github.com/techdevfun/memgraph) — MIT, zero dependencies,\n\nNode.js 18+.", "url": "https://wpnews.pro/news/your-agent-forgot-a-decision-you-made-last-week-mine-did-too", "canonical_source": "https://dev.to/techdevfun/your-agent-forgot-a-decision-you-made-last-week-mine-did-too-1ba9", "published_at": "2026-10-22 03:59:57+00:00", "updated_at": "2026-10-22 04:10:51.135571+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools"], "entities": ["memgraph", "techdevfun", "Node.js", "Postgres", "Redis Streams"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/your-agent-forgot-a-decision-you-made-last-week-mine-did-too", "markdown": "https://wpnews.pro/news/your-agent-forgot-a-decision-you-made-last-week-mine-did-too.md", "text": "https://wpnews.pro/news/your-agent-forgot-a-decision-you-made-last-week-mine-did-too.txt", "jsonld": "https://wpnews.pro/news/your-agent-forgot-a-decision-you-made-last-week-mine-did-too.jsonld"}}