Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Push project knowledge into the Cognee knowledge graph. Stores entities, decisions, events, relationships, and session context. End-of-session flush that extracts everything from the conversation and writes to the graph. Triggers on: 'cognee store', 'push to cognee', 'save to graph', 'remember this', 'log this decision'.
.claude/skills/coco-research-cognee-store/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 82% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 190% | 0% |
Stores structured knowledge into Cognee's knowledge graph. Functions as the write path for Coco's memory layer — maps entities, decisions, events, and relationships to graph nodes and edges with embeddings for later semantic retrieval.
bashCOGNEE="${COGNEE_BASE_URL:-http://localhost:8000}" DATASET="my-project" # Store a text fact (auto-cognifies) curl -s -X POST "$COGNEE/api/v1/remember" \ -F "datasetName=$DATASET" \ -F 'data={"entity": {"type": "decision", "text": "Use JWT for API auth", "date": "2026-06-30", "decided_by": "dana", "context": "Stateless, works with existing infra"}}' \ -F "run_in_background=false" | jq . # Store file-based knowledge curl -s -X POST "$COGNEE/api/v1/remember" \ -F "datasetName=$DATASET" \ -F "data=@/path/to/decision-log.md" \ -F "run_in_background=false" | jq . # Cognify existing data (process + build graph) curl -s -X POST "$COGNEE/api/v1/cognify" \ -H "Content-Type: application/json" \ -d '{"datasets": ["my-project"]}' | jq .
All knowledge is stored as text, structured for Cognee's graph extraction. Use these formats:
ENTITY: {name} | TYPE: {person|team|system|module|org_unit|document}
DESCRIPTION: {one-line description}
METADATA: {key: value, ...}DECISION: {text} | DATE: {YYYY-MM-DD}
DECIDED_BY: {name}
CONTEXT: {why this was decided, alternatives considered}
IMPACT: {what changes as a result}EVENT: {title} | DATE: {YYYY-MM-DD} | TYPE: {meeting|call|email|milestone|deploy}
SUMMARY: {what happened}
PARTICIPANTS: {comma-separated names}
OUTCOMES: {decisions made, action items}RELATIONSHIP: {entity_a} -> {entity_b} | TYPE: {member_of|owns|depends_on|reports_to|blocks|administers|scoped_to}
CONTEXT: {why this relationship exists}TASK: {description} | STATUS: {open|in_progress|blocked|waiting|done|cancelled}
PRIORITY: {1 (highest) - 5 (lowest)}
ASSIGNED_TO: {name}
BLOCKED_BY: {task or entity reference}This is the most important command. When invoked, the agent MUST thoroughly review the entire conversation and write everything learned to Cognee. This is a forcing function — do not skip anything.
bashCOGNEE="${COGNEE_BASE_URL:-http://localhost:8000}" curl -s -o /dev/null -w "%{http_code}" "$COGNEE/health"
If not 200: "Cognee is not running. Start with cognee server start." → offer to use /brain-update instead.
bashcurl -s "$COGNEE/api/v1/datasets" | jq -r '.[].name'
If the project dataset doesn't exist: "No dataset found for this project. Run /cognee init first."
Go through every message from top to bottom. Extract:
| Category | What to look for | |----------|-----------------| | New entities | Any person, team, role, system, module mentioned for the first time | | New relationships | Connections discovered: X owns Y, A reports to B | | New decisions | Anything decided, agreed, confirmed, resolved, or ruled out | | New events | Meetings, calls, emails read, milestones, deployments | | New tasks | Action items, to-dos, next steps, follow-ups | | Task updates | Existing tasks that changed status | | Entity updates | New info about existing entities |
COGNEE STORE SUMMARY
====================
Dataset: my-project
New entities: 3 (Alice Chen [person], PlatformHub [module], Auth Service [system])
New decisions: 2 (Use JWT for API auth, Rate-limit at gateway level)
New events: 1 (Architecture review call Jun 30)
New tasks: 4 (Set up JWT middleware, Configure rate limiter, ...)
Task updates: 2 (task #3 → blocked, task #5 → in_progress)
New relationships: 1 (Auth Service depends_on PlatformHub)
Entity updates: 1 (Alice Chen: added backend lead role)
Total items to store: 13Ask: "Write all to Cognee? Y/n/adjust]"
On confirmation, format each item according to the data formats above and send as a single batch:
bashCOGNEE="${COGNEE_BASE_URL:-http://localhost:8000}" # Build the payload as a multiline text document cat > /tmp/cognee-store-batch.txt << 'STORE_EOF' ENTITY: Alice Chen | TYPE: person DESCRIPTION: Backend lead on PlatformHub METADATA: {role: "backend lead", team: "Engineering"} ENTITY: PlatformHub | TYPE: module DESCRIPTION: Central platform for managing external access ENTITY: Auth Service | TYPE: system DESCRIPTION: Authentication and authorization service DECISION: Use JWT for API auth | DATE: 2026-06-30 DECIDED_BY: dana CONTEXT: Stateless, works with existing infrastructure. Considered session tokens but JWT more scalable. IMPACT: All API endpoints will validate JWT tokens DECISION: Rate-limit at gateway level | DATE: 2026-06-30 DECIDED_BY: dana CONTEXT: Prefer gateway-level rate limiting over per-service to avoid duplication IMPACT: API gateway configuration needs updating EVENT: Architecture review call | DATE: 2026-06-30 | TYPE: call SUMMARY: Reviewed authentication and rate-limiting architecture PARTICIPANTS: dana, alex OUTCOMES: JWT chosen for auth, rate-limiting at gateway RELATIONSHIP: Auth Service -> PlatformHub | TYPE: depends_on CONTEXT: Auth service validates tokens before requests reach PlatformHub TASK: Set up JWT middleware | STATUS: open PRIORITY: 1 ASSIGNED_TO: Alice Chen TASK: Configure rate limiter at gateway | STATUS: open PRIORITY: 2 ASSIGNED_TO: Alice Chen TASK: Update API docs with auth headers | STATUS: open PRIORITY: 3 TASK: Add monitoring for rate-limit hits | STATUS: open PRIORITY: 4 STORE_EOF # Send batch curl -s -X POST "$COGNEE/api/v1/remember" \ -F "datasetName=$DATASET" \ -F "data=@/tmp/cognee-store-batch.txt" \ -F "run_in_background=false" | jq . rm /tmp/cognee-store-batch.txt
COGNEE STORE COMPLETE
=====================
Dataset: my-project
Stored: 13 items (3 entities, 2 decisions, 1 event, 4 tasks, 2 updates, 1 relationship)
Cognified: yes
Graph: updated with new nodes and edges
Recall with: /cognee-recall "what did we decide about authentication"/cognee-store:update)When a decision is made or important info surfaces mid-conversation, offer a lightweight store:
> "Should I store this decision in Cognee? [store / skip]"If "store": format as single item and send via /remember.
Before storing, check if similar content already exists by doing a quick search:
bashcurl -s -X POST "$COGNEE/api/v1/search" \ -H "Content-Type: application/json" \ -d "{\"query\": \"$SEARCH_TEXT\", \"datasets\": [\"$DATASET\"], \"search_type\": \"FEELING_LUCKY\", \"top_k\": 5}" | jq .
If high-confidence match found (>80% similarity), note it and skip: "Similar content already exists in graph. Skipping duplicate."
Group all items into a single /remember call rather than sending individual requests. Cognee processes the batch and builds graph connections between items automatically.
| Scenario | Use | |----------|-----| | Quick local decision log | Brain (SQLite, instant) | | Cross-project entity linking | Cognee (graph edges span datasets) | | Semantic search needed later | Cognee (embeddings enable fuzzy recall) | | Offline / no Cognee running | Brain (zero dependencies) | | Session context for auto-recall | Cognee (session-aware search) | | Both (belt and suspenders) | Store to both |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | pass→fail | 10,349 | 5,423 | -48% | 1 | 1 | 0% | 869 | 2,998 | +245% | 0 | 0 | — |
case-02 | fail→fail | 20,911 | 11,857 | -43% | 1 | 1 | 0% | 2,281 | 2,649 | +16% | 0 | 0 | — |
case-01 | fail→fail | 17,310 | 27,694 | +60% | 1 | 1 | 0% | 1,932 | 2,884 | +49% | 0 | 0 | — |
case-04 | pass→pass | 14,438 | 10,419 | -28% | 1 | 1 | 0% | 1,689 | 3,037 | +80% | 0 | 0 | — |
case-05 | pass→pass | 9,061 | 10,974 | +21% | 1 | 1 | 0% | 1,724 | 3,233 | +88% | 0 | 0 | — |
case-06 | fail→pass | 9,401 | 3,600 | -62% | 1 | 1 | 0% | 1,642 | 2,987 | +82% | 0 | 0 | — |
case-07 | fail→pass | 13,202 | 10,247 | -22% | 1 | 1 | 0% | 2,719 | 3,403 | +25% | 0 | 0 | — |
case-08 | fail→pass | 14,891 | 10,228 | -31% | 1 | 1 | 0% | 2,273 | 3,337 | +47% | 0 | 0 | — |
case-09 | fail→pass | 14,333 | 3,390 | -76% | 1 | 1 | 0% | 1,405 | 3,033 | +116% | 0 | 0 | — |
case-10 | fail→pass | 7,161 | 2,776 | -61% | 1 | 1 | 0% | 985 | 2,856 | +190% | 0 | 0 | — |
case-11 | fail→pass | 16,591 | 9,988 | -40% | 1 | 1 | 0% | 2,314 | 3,196 | +38% | 0 | 0 | — |
case-12 | fail→pass | 15,130 | 8,387 | -45% | 1 | 1 | 0% | 1,557 | 2,910 | +87% | 0 | 0 | — |
case-13 | pass→pass | 16,928 | 2,545 | -85% | 1 | 1 | 0% | 1,847 | 2,805 | +52% | 0 | 0 | — |
case-14 | fail→pass | 17,549 | 11,993 | -32% | 1 | 1 | 0% | 1,678 | 3,373 | +101% | 0 | 0 | — |
case-15 | fail→pass | 25,058 | 8,182 | -67% | 1 | 1 | 0% | 1,731 | 2,730 | +58% | 0 | 0 | — |
case-16 | fail→pass | 13,331 | 4,722 | -65% | 1 | 1 | 0% | 2,614 | 3,178 | +22% | 0 | 0 | — |
case-17 | fail→pass | 10,346 | 7,849 | -24% | 1 | 1 | 0% | 1,493 | 2,859 | +91% | 0 | 0 | — |
case-18 | fail→pass | 17,004 | 10,747 | -37% | 1 | 1 | 0% | 1,920 | 3,355 | +75% | 0 | 0 | — |
case-19 | pass→pass | 15,666 | 11,542 | -26% | 1 | 1 | 0% | 2,374 | 3,491 | +47% | 0 | 0 | — |
case-20 | fail→pass | 13,296 | 2,530 | -81% | 1 | 1 | 0% | 1,322 | 2,651 | +101% | 0 | 0 | — |
case-21 | fail→pass | 8,892 | 1,961 | -78% | 1 | 1 | 0% | 723 | 2,686 | +272% | 0 | 0 | — |
case-22 | pass→pass | 12,374 | 7,713 | -38% | 1 | 1 | 0% | 1,014 | 2,788 | +175% | 0 | 0 | — |
case-23 | fail→pass | 13,217 | 9,225 | -30% | 1 | 1 | 0% | 1,262 | 2,996 | +137% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +61 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.