Stop Teaching Every AI From Scratch
A personal Dense-Mem reflection on the problems that pushed me beyond static skills and stale files toward dynamic shared memory, read-only automation context, import/export, and governed knowledge graphs.
Powered by AI · Limited to 20 requests per hour

Answer Snapshot
In 2026, the Dense-Mem problem I keep thinking about is no longer only "how do I give one AI assistant memory?"
The harder problem is: how do I stop every AI workflow from learning in isolation?
I kept seeing the same failure pattern. I would write a skill, update a static note, tune an automation prompt, or correct an assistant. It worked for that one place. Then the lesson stayed there. The next AI session still started cold. The next automation still carried stale context. The next plugin had to rediscover a decision I had already made.
I had already written about why AI memory has to be more than RAG. This time, the problem felt more operational. It pushed me toward a different mental model:
skills and files = snapshots of intent
Dense-Mem = the source of truth
LLM = the human-readable interfaceThe result I found is not "keep docs as another source of truth." That creates the same duplication problem with nicer formatting. The useful split is: keep procedures in skills, keep canonical knowledge in Dense-Mem, and let humans ask an LLM to explain, trace, summarize, or challenge that memory.
| Problem I hit | Resolution I found |
|---|---|
| Skills are shareable but static | Memory can improve as corrections, evidence, claims, imports, and facts accumulate |
| Static notes and prompt files get stale | Dense-Mem can become the single source of truth the LLM explains |
| Automation copied old context | Read-only keys can fetch current memory without write permission |
| Different AI tools learned different things | Claude Code, Codex, plugins, and automations can point at the same memory layer |
| Knowledge handoff was manual | Export/import can move reviewed knowledge with inspection and conflict handling |
The Problem I Kept Running Into
I did not start with the phrase "centralized knowledge graph."
I started with irritation.
I would make one AI workflow better, then realize the improvement did not travel. A blog-writing skill learned nothing from the last rejected draft unless I edited the skill. An explainer workflow did not know what the support workflow had already discovered. A release checker used the context I pasted into it weeks ago. A new Codex session did not automatically know what Claude Code had just helped me decide.

At first, the obvious answer looked like more files.
Write better static notes. Write better skills. Write better prompt templates. Add more examples. Add more instructions. Add one more checklist.
That helped for a while. But it also exposed the limit. Every static file depends on someone remembering to update it. If five workflows copy the same context, I now have five stale copies waiting to diverge. If a correction only lives in one conversation, the next conversation repeats the same mistake.
That was the point where I started thinking less about "memory as a chatbot feature" and more about "memory as shared infrastructure."
Skills Helped, But They Stayed Static

Skills are still one of the best ways to make AI workflows repeatable. I use them because they package procedure cleanly:
When writing release notes:
- read merged pull requests
- group changes by user impact
- avoid unreleased claims
- run the content check before finishingThat belongs in a skill. It is stable. It should not depend on recall.
The problem is what happens after the skill runs a few times.
The user corrects the tone. A reviewer rejects a phrase because it implies an unreleased feature. Support reveals that customers use a different term than the old static explanation uses. An automation finds that one checklist item fails on demo builds. Engineering changes an architecture decision.
Those are not always good skill-file material. They are experience. If I paste every experience into the skill, the skill becomes a pile of history. If I do not save the experience anywhere, the assistant learns nothing durable.
This is where sharing memory starts to feel more powerful than only sharing skills. It is the same direction I explored in Skills + Dense-Mem, but this time the single-source-of-truth problem made the argument sharper.
skill -> stable workflow
Dense-Mem -> source of truth and evolving experience
LLM -> human-readable explanation on demandThe skill tells the assistant how to work. The memory tells it what this project has learned while working.
The Static Reference Problem Felt Similar

I saw the same pattern with static explanation material.
Static file storage is easy to trust because it is visible. A markdown file feels concrete. A folder feels organized. But if I treat those files as canonical, I now have another copy of truth to keep synchronized with the memory system.
That violates the single-source-of-truth pattern I actually want.
The resolution I found was to change the interface:
- Dense-Mem stores the evidence, current facts, stale facts, conflicts, and provenance
- skills define repeatable AI procedures, not canonical product knowledge
- humans ask an LLM to read Dense-Mem and explain the current truth
- any generated page or summary is an output, not the source of truth
A useful knowledge database can grow from normal work:
- support tickets become evidence fragments
- engineering decisions become typed claims
- reviewed claims become active facts
- stale facts are superseded instead of overwritten
- conflicts become clarification tasks
- imports bring reviewed knowledge from another workspace
- read-only clients recall context without mutating it
The important caveat is that this is not magic. Memory does not improve just because it exists. It improves when the workflow captures evidence, checks claims, promotes facts carefully, surfaces stale knowledge, and asks for clarification when memory conflicts.
work happens -> evidence is captured -> claims are checked
-> facts are promoted -> stale knowledge is surfaced
-> future AI work starts with better contextThat loop is what static explanation files were missing for me. The human-readable layer can be regenerated or re-explained. The memory graph remains the canonical store.
The Read-Only Key Changed How I Think About Automation

Automation made the problem more obvious.
A release checker, issue triage workflow, or explanation reviewer needs context. It may need to know which features are released, which terms are safe, which customer promises are not approved, and which engineering decision changed after the last incident.
My old instinct was to paste the context into the automation prompt.
That works until the context ages. Then I have to hunt down every workflow that copied it.
The pattern I prefer now is:
automation job -> read-only Dense-Mem key -> recall current context
automation job -> no write scope -> cannot mutate memoryThis is where RBAC stopped feeling like an enterprise checkbox and started feeling practical.
Some workflows should write memory. Many should not. A reviewer bot may need to recall current project decisions, but it does not need permission to rewrite the team's memory. A bulk job may need context, but it should not promote facts. A human-facing assistant can have broader access when that makes sense.
For me, the key insight was that centralized memory is not only about smarter answers. It is also about fewer stale copies of context.
One Memory Gets More Valuable As Models Improve
There is a future-facing reason I care about this.
LLMs and plugins keep getting better. A current plugin might recall a few facts and use them awkwardly. A future plugin may assemble context better, explain provenance better, ask sharper clarification questions, and avoid stale facts more reliably.
If the memory is trapped inside one prompt file, one tool, or one chat product, every upgrade starts with partial knowledge again.
If the memory lives in a shared Dense-Mem server, stronger clients can use the same accumulated knowledge:
same knowledge graph
-> today's Claude Code session
-> today's Codex session
-> tomorrow's plugin
-> future automation
-> stronger models using richer contextThis does not guarantee better reasoning. A stronger model can still be misled by bad memory. But if the memory is governed, reviewed, and traceable, better models should make the workflow smoother because they no longer have to rediscover the team's context from scratch.
That is the compounding benefit I am betting on. The knowledge database grows while the clients get better at using it.
What Dense-Mem Gave Me As A Shape

The part of Dense-Mem I keep coming back to is the boundary.
I do not want every host LLM to invent its own memory format. I also do not want an LLM silently rewriting long-term memory because it saw one confident sentence.
The shape I found more trustworthy is:
source fragment -> typed claim -> verification -> promotion gate -> active fact
|
v
clarification taskThe host LLM still owns conversation, extraction, and judgment. Dense-Mem owns durable memory state: source fragments, typed claims, verification, promotion gates, recall, team isolation, API keys, audit metadata, MCP, REST, and OpenAPI surfaces.
That gives me questions I can actually reason about:
- What is the current fact?
- Which evidence supports it?
- Which old fact did it replace?
- Which unresolved conflict needs a human answer?
- Which team does this memory belong to?
- Which key or role is allowed to use this workflow?
This is why I think "centralized knowledge graph" is the right phrase. Not because graph databases are magic, but because useful memory is relational, historical, and permissioned.
Import And Export Made The Idea Less Local

Once I started thinking about memory as accumulated experience, import and export became more important.
If a team learns something useful, it should not be trapped in one environment forever. But blindly copying memory is risky. I do not want to import a pile of unknown facts and silently supersede local knowledge.
The safer shape is reviewed portability:
| Copying a file | Importing reviewed memory |
|---|---|
| Moves text | Moves structured facts, claims, and selected support |
| Trust is informal | Artifact hash and inspection can verify what is being imported |
| Conflicts are easy to miss | Conflicts can require explicit decisions |
| Rollback is manual | Rollback can use an import ledger when graph state is still safe |
| Context is flat | Context keeps relationships and provenance |
This is the point where sharing memory becomes meaningfully different from sharing a skill. A skill can teach the workflow. A memory bundle can carry reviewed experience into another workspace.
What I Think The Benefits Are
After hitting these problems, the benefits I care about are practical:
| Benefit | Why it matters to me |
|---|---|
| Continuity | New AI sessions can recall prior decisions instead of starting cold |
| Shared learning | Corrections from one workflow can improve another workflow later |
| Permissioned access | Read-only automation can retrieve context without mutating memory |
| Traceability | Facts can point back to evidence, claims, and promotion history |
| Conflict handling | Contradictions can become clarification tasks instead of silent overwrites |
| Portability | Selected knowledge can be exported, inspected, imported, and rolled back |
| Compounding value | The graph becomes more useful as the team and AI clients add reviewed context |
The last row is the big one. A static file has to be maintained. A knowledge database still needs governance, but it can participate in the work loop. It can grow dynamically as work happens, and better future LLM clients can use that same memory more smoothly.
Where I Draw The Boundary
I do not think this means "put everything in memory."
Dense-Mem is not a password manager. I would not store credentials, private keys, seed phrases, payment cards, or secrets as memory.
Dense-Mem is not an external truth oracle. It can preserve evidence, state, conflict signals, and provenance. It cannot prove the outside world is true by itself.
Dense-Mem is not a replacement for skills. Skills still belong where procedure must be stable. But I no longer want a separate human-readable file tree to become a second source of truth. The memory graph belongs where knowledge changes, conflicts, accumulates, and needs to be recalled by more than one AI client.
The rule I ended up trusting is:
Keep procedures in skills. Keep canonical knowledge in Dense-Mem. Let humans ask an LLM to explain the memory.
That is the problem Dense-Mem helped me name.
Not "AI remembers everything."
Something narrower and more useful: a permissioned place where AI tools can preserve what the work has taught me, trace why the memory exists, ask when memory conflicts, and carry that context into the next workflow.
License
Article text © 2026 Mark Huang. Licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) unless otherwise noted. You may share or translate this article for non-commercial use with attribution to the original article URL. Commercial use requires prior written permission and must clearly cite the original source.
Code snippets, screenshots, third-party assets, and site source code may have separate terms.
Suggested attribution: Based on "Stop Teaching Every AI From Scratch" by Mark Huang, originally published at https://markhuang.ai/blog/centralized-ai-knowledge-graph-dense-mem-case-study.
Related Articles

I Feel Sorry for AI
Why both AI hype and anti-AI hostility miss the same point: LLMs behave more like straight-A new graduates than senior experts, and useful agents need onboarding, skills, and maintained memory rather than impossible first-attempt expectations.
Read article
Skills + Dense-Mem: Making AI Workflows Learn From Experience
A hypothesis for combining AI skills with Dense-Mem: keep workflow, safety rules, and acceptance criteria in skills, while memory stores expectations, examples, corrections, failures, and portable skill-pack knowledge.
Read article
System Prompt vs User Prompt: The Layer Under GenAI Features
A beginner-friendly explanation of system_prompt and user_prompt using ChatGPT, Claude Projects, Claude Cowork, and Claude Code examples.
Read articleStay updated
Articles on Go, AI/LLMs, and distributed systems. No spam.
Comments
Loading comments...