CtrlK
BlogDocsLog inGet started
Tessl Logo

knowledge-graph

Three-Layer Memory System — automatic fact extraction, entity-based knowledge graph, and weekly synthesis. Manages life/areas/ entities with atomic facts and living summaries.

51

Quality

41%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./clawdbot/knowledge-graph/SKILL.md
SKILL.md
Quality
Evals
Security

Knowledge Graph Skill

Maintain a lightweight, append-only entity graph that compounds durable facts across sessions.

When to Use

  • Extract durable facts from recent work or conversation history
  • Rewrite entity summaries from active facts
  • Answer "what do we know about X?" without reopening large transcripts
  • Keep shared context for people, companies, and projects inside the workspace

Data Model

Store the graph under:

<workspace>/life/areas/
  people/<slug>/
  companies/<slug>/
  projects/<slug>/

Each entity folder should contain:

  • summary.md for the short, current snapshot
  • facts.jsonl for atomic, append-only facts

Use one JSON object per line:

{
  "id": "<slug>-NNN",
  "fact": "Plain-English fact",
  "category": "relationship|milestone|status|preference|context|decision",
  "ts": "YYYY-MM-DD",
  "source": "conversation|manual|inference",
  "status": "active|superseded",
  "supersedes": "<older-id>"
}

Fact Rules

  • Keep facts atomic. One durable fact per entry.
  • Append new facts instead of rewriting history.
  • When something changes, add a new fact and mark the old one as superseded.
  • Skip ephemera, greetings, speculation, and low-value chatter.
  • Check existing facts before adding duplicates.

Durable facts usually include:

  • role or relationship changes
  • key decisions
  • long-lived preferences
  • major project milestones
  • stable operating context

Workflows

Fact Extraction

  1. Read the recent daily note and the recent conversation window.
  2. Identify durable facts worth preserving.
  3. Resolve entity type and slug.
  4. Create the entity folder if it does not exist.
  5. Append new facts to facts.jsonl.
  6. Note extraction activity in the daily note if the workspace uses one.

Weekly Synthesis

  1. List entities changed during the week.
  2. Load active facts only.
  3. Rewrite summary.md in 3 to 8 concise lines.
  4. Ensure contradicted facts are marked superseded.
  5. Record a short synthesis note in the daily log if applicable.

Entity Lookup

  1. Read summary.md first.
  2. Open facts.jsonl only if the summary is stale or the user asked for detail.
  3. Fall back to broader memory search only when the entity is missing from the graph.

Low-Token Recall

Recall should be triggered, not automatic.

  • Recall when the user names a tracked person, company, or project.
  • Recall when the user explicitly asks to remember, recall, or summarize prior context.
  • Inject only the short summary by default.
  • Avoid loading raw facts unless the user asked for specifics or contradictions need resolution.

Setup

Create the core directories once:

mkdir -p life/areas/people life/areas/companies life/areas/projects

If multiple agents share one workspace, point them at the same life/ directory so they operate on the same entity store.

Safety Boundaries

  • Do not store sensitive secrets, credentials, or highly personal data unless the user explicitly asked for it.
  • Do not create entities or facts for casual chat that has no durable value.
  • Do not inject the graph into every conversation by default.
  • Do not delete historical facts; supersede them with a newer fact instead.
Repository
jdrhyne/agent-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.