{"id":"9d35254f-903b-4f44-9d6a-be1f3d81b306","entityType":"agent","slug":"clawhub-mozz0-josh-learns","name":"MeshMorize","canonicalUrl":"https://www.xpersona.co/agent/clawhub-mozz0-josh-learns","canonicalPath":"/agent/clawhub-mozz0-josh-learns","generatedAt":"2026-10-10T21:43:21.639Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":null},"description":"Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts. Skill: MeshMorize Owner: mozz0 Summary: Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts. Tags: latest:4.0","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17dbza9b0k9x98r9anh6vhhp187c9sj:josh-learns","sourceUrl":"https://clawhub.ai/mozz0/josh-learns","homepage":"https://clawhub.ai/mozz0/skills/josh-learns","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/mozz0/josh-learns","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/mozz0/skills/josh-learns","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, c"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":null},"stars":null,"forks":null,"downloads":1342,"packageName":null,"latestVersion":"4.0.0","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T16:18:09.152Z","lastCrawledAt":"2026-10-10T16:18:09.152Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T16:18:09.152Z","lastVerifiedAt":null,"highlights":[{"version":"4.0.0","createdAt":"2026-09-08T17:02:07.696Z","changelog":"v4 clean public release: detailed professional AI instructions, local-first only (no sync scripts), MIT license","fileCount":9,"zipByteSize":20670},{"version":"3.3.4","createdAt":"2026-08-16T00:06:02.362Z","changelog":"Fix display name + security docs","fileCount":8,"zipByteSize":23297},{"version":"3.3.3","createdAt":"2026-08-15T23:49:47.277Z","changelog":"Security docs: key-only NAS auth, optional sync clarified, retention + redaction guidance","fileCount":8,"zipByteSize":23202},{"version":"3.3.2","createdAt":"2026-08-15T23:41:04.109Z","changelog":"Security: vault-push now uses SSH key auth only (no sshpass, no env-file credentials, no passwords anywhere). Restores StrictHostKeyChecking.","fileCount":8,"zipByteSize":22628},{"version":"3.3.1","createdAt":"2026-08-15T23:34:16.642Z","changelog":"Security fix: removed hardcoded NAS credentials (env-file based), restored SSH host-key verification","fileCount":7,"zipByteSize":16739},{"version":"3.3.0","createdAt":"2026-08-08T12:40:07.807Z","changelog":"v3.3: PDF Memory Vault layer (verbatim daily PDFs + NAS sync + rebirth README), session dumper documented, day-by-day usage guide, battle-tested story","fileCount":8,"zipByteSize":15498},{"version":"3.2.2","createdAt":"2026-06-06T16:33:38.915Z","changelog":"Fix bridge.py: respects OPENCLAW_WORKSPACE. Edge types documented. Dual-scan validated.","fileCount":3,"zipByteSize":1956},{"version":"3.2.1","createdAt":"2026-06-06T16:24:50.640Z","changelog":"v1.2: mem-bridge summarize command, end-to-end examples in README","fileCount":3,"zipByteSize":2035}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dbza9b0k9x98r9anh6vhhp187c9sj:josh-learns","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:43:21.636Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-mozz0-josh-learns/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":null},"readme":"Skill: MeshMorize\n\nOwner: mozz0\n\nSummary: Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts.\n\nTags: latest:4.0.0\n\nVersion history:\n\nv4.0.0 | 2026-09-08T17:02:07.696Z | user\n\nv4 clean public release: detailed professional AI instructions, local-first only (no sync scripts), MIT license\n\nv3.3.4 | 2026-08-16T00:06:02.362Z | user\n\nFix display name + security docs\n\nv3.3.3 | 2026-08-15T23:49:47.277Z | user\n\nSecurity docs: key-only NAS auth, optional sync clarified, retention + redaction guidance\n\nv3.3.2 | 2026-08-15T23:41:04.109Z | user\n\nSecurity: vault-push now uses SSH key auth only (no sshpass, no env-file credentials, no passwords anywhere). Restores StrictHostKeyChecking.\n\nv3.3.1 | 2026-08-15T23:34:16.642Z | user\n\nSecurity fix: removed hardcoded NAS credentials (env-file based), restored SSH host-key verification\n\nv3.3.0 | 2026-08-08T12:40:07.807Z | user\n\nv3.3: PDF Memory Vault layer (verbatim daily PDFs + NAS sync + rebirth README), session dumper documented, day-by-day usage guide, battle-tested story\n\nv3.2.2 | 2026-06-06T16:33:38.915Z | user\n\nFix bridge.py: respects OPENCLAW_WORKSPACE. Edge types documented. Dual-scan validated.\n\nv3.2.1 | 2026-06-06T16:24:50.640Z | user\n\nv1.2: mem-bridge summarize command, end-to-end examples in README\n\nv3.2.0 | 2026-06-06T16:20:16.708Z | user\n\nv1.1: env var support, mesh edges, fuzzy search, full docs\n\nv3.1.2 | 2026-06-06T16:13:14.659Z | user\n\nFix display name to MeshMorize\n\nv3.1.1 | 2026-06-06T16:12:59.981Z | user\n\nMeshMorize v3.1.1 — clean display name, unified description, minimal SKILL.md\n\nv3.1.0 | 2026-06-06T16:11:07.381Z | user\n\nMeshMorize v1 merge: full memory compliance system with fresh layer, mesh, auto-log, search, and memcheck\n\nv3.0.23 | 2026-05-25T05:16:29.507Z | auto\n\nSelf-improvement v3.0.23 introduces detailed logging and file management for a more effective, memory-driven workflow.\n\n- Adds creation and initialization instructions for `.learnings/` log files (`LEARNINGS.md`, `ERRORS.md`, `FEATURE_REQUESTS.md`).\n- Documents structured markdown formats for learning, error, and feature request entries with metadata and best practices.\n- Establishes workflows for promoting broadly relevant knowledge to persistent workspace files (`AGENTS.md`, `SOUL.md`, `TOOLS.md`).\n- Explains OpenClaw integration, opt-in startup reminder hooks, and multi-agent session sharing.\n- Clarifies strict privacy and safety guidance about not logging secrets or raw output by default.\n\nArchive index:\n\nArchive v4.0.0: 9 files, 20670 bytes\n\nFiles: LICENSE (1080b), memory/bridge.py (21916b), README.md (4679b), scripts/auto_log.py (918b), scripts/memory_check.py (4811b), scripts/memory_search.py (5060b), skill-card.md (2157b), SKILL.md (10683b), _meta.json (130b)\n\nFile v4.0.0:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts.\"\n---\n\n# MeshMorize 🧠\n\nA local-first, file-based memory system for AI agents running on OpenClaw-like hosts. All state lives in plain Markdown + JSON on disk — no database server, no cloud dependency, no API cost. The bundled scripts are small, dependency-free Python (standard library + grep only).\n\n**Core philosophy: memory is files, not sessions.** Sessions are ephemeral — they die on crashes, compaction, restarts, and reinstalls. Files survive all of those. If something isn't written to a file, it effectively didn't happen. This skill exists to make writing and finding those files automatic.\n\n## What any agent gets\n\n| Layer | Location | Purpose |\n|-------|----------|---------|\n| **Fresh** | `memory/fresh/today.md` … `4-days-ago.md` | Rolling 5-day window of recent context; read first at session start |\n| **Daily log** | `memory/YYYY-MM-DD.md` | Timestamped record of every logged exchange, one file per day |\n| **Mesh graph** | `memory/mesh.json` | Lightweight node/edge index with timestamps for long-lived topics |\n| **Rolling log** | `memory/LATEST.md` | The most recent exchanges in one place |\n| **Checkpoints** | `memory/checkpoints/` | Crash-recovery snapshots (`latest.json` + timestamped history) |\n| **Decisions** | `memory/decisions/` | Dated decision records with mesh nodes |\n| **Quarters** | `memory/quarters/` | Optional meaning-based day summaries (4 per day) |\n\n## Tools\n\n| Command | Source | What it does |\n|---------|--------|--------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, today-file creation, checkpoints, decision capture, mesh timestamps, session wrap |\n| `auto_log` | `scripts/auto_log.py` | Append one timestamped entry to today's daily log + `LATEST.md` |\n| `memory_search` | `scripts/memory_search.py` | Cross-layer search: fresh → daily logs → mesh (grep-based, $0) |\n| `memcheck` | `scripts/memory_check.py` | 10-point compliance check of the whole memory chain |\n\n## Install (any OpenClaw-like workspace)\n\nThe scripts respect the `OPENCLAW_WORKSPACE` environment variable and default to `~/.openclaw/workspace` (or your host's agent home). `memory/` and `scripts/` are relative to that workspace root.\n\n1. **Place the files** (this repo is a skill bundle — copy, don't run in place):\n   - `memory/bridge.py` → `<workspace>/memory/bridge.py`\n   - `scripts/memory_search.py`, `scripts/auto_log.py`, `scripts/memory_check.py` → `<workspace>/scripts/`\n2. **Make them callable** — symlink into a directory already on `PATH` (e.g. `~/.local/bin` or `~/.npm-global/bin`):\n   ```bash\n   ln -s \"$(pwd)/memory/bridge.py\"          ~/.local/bin/mem-bridge\n   ln -s \"$(pwd)/scripts/auto_log.py\"       ~/.local/bin/auto_log\n   ln -s \"$(pwd)/scripts/memory_search.py\"  ~/.local/bin/memory_search\n   ln -s \"$(pwd)/scripts/memory_check.py\"   ~/.local/bin/memcheck\n   ```\n3. **Run the bridge on every session start** (before answering anything):\n   ```bash\n   mem-bridge init-auto\n   ```\n   This rotates the fresh layer, creates `memory/fresh/today.md`, resumes the latest checkpoint, and logs the startup.\n\n## Protocol 1 — SEARCH BEFORE ANSWER\n\nBefore answering any question about the past, prior work, people, decisions, or plans:\n\n1. **Search first** — extract the 2–5 most specific keywords from the user's message and run:\n   ```bash\n   memory_search \"<keywords>\"\n   ```\n   Cost: $0 (pure grep, no API calls). It searches the fresh layer first, then the TDAI/legacy archive if present, then every dated daily log, then mesh nodes.\n2. **If there are hits, read the full source file.** Snippets are context; the files are truth. A search hit line tells you *where* the answer is — go open that file and read the surrounding entry.\n3. **If search returns nothing**, do not answer \"no record\" yet. Check the remaining places memory can live: the automation/reminder registry (see below), `memory/checkpoints/`, and mesh nodes by related keyword.\n\n## Protocol 2 — LOG EVERY EXCHANGE\n\nAfter any turn that contained something worth remembering — decisions, results, plans, corrections, context, or user preferences:\n\n```bash\nauto_log \"what was said, done, or decided\"\n```\n\nThis appends one timestamped entry to today's daily log (`memory/YYYY-MM-DD.md`) and to the rolling `LATEST.md`. It is the **last step** of the turn, so the log always reflects the final state. Do not log trivia; do log anything future-you would need to reconstruct the conversation.\n\n## Fresh-layer rotation\n\n`bridge.py` keeps a 5-day fresh window. Each startup, `init-auto` (or `init`) checks whether `memory/fresh/today.md` already contains today's date string; if the file is stale, it rotates: `4-days-ago ← 3-days-ago ← … ← yesterday ← today`, then creates a fresh template for today. Rotation is idempotent — running it twice on the same day changes nothing.\n\nOther bridge commands: `mem-bridge log <msg>`, `mem-bridge decision <topic> <body>`, `mem-bridge quarter <1-4> <summary>`, `mem-bridge checkpoint <context> [node]`, `mem-bridge resume`, `mem-bridge touch <node_id>`, `mem-bridge wrap`, `mem-bridge mesh [N]`, `mem-bridge summarize`, `mem-bridge daily`.\n\n## memcheck — compliance in one command\n\nWhen memory health is in doubt (missing files, rotation broken, tools lost from PATH), run:\n\n```bash\nmemcheck\n```\n\nIt runs 10 checks: auto_log writes, bridge init, today.md presence/age, the 5 fresh files, core agent files, mesh.json, the raw log, the local secret store, tools on PATH, and the heartbeat file — then prints a pass/warn/fail summary. The core-file and directory lists encode one workspace's conventions: treat it as a template and adjust the lists to your own layout if your agent home differs.\n\n## Crash-gap recovery (conversation lost to a dead session)\n\nWhen a conversation is missing from the file layers (an LLM crash ate the turn, or the machine powered off before the periodic dump), recover it from the gateway's transcript store — never rebuild from guesses.\n\n1. **Identify the session** that was live at the time. Session listings show a `sessionId` per `sessionKey` (for the main chat this is your agent's main session key).\n2. **Copy the database first** — `sqlite3` refuses to open the live DB while the gateway holds it:\n   ```bash\n   mkdir -p /tmp/db-inspect\n   cp <openclaw-state>/agents/<agent-id>/agent/openclaw-agent.sqlite* /tmp/db-inspect/\n   ```\n   The exact path depends on the OpenClaw version and agent layout — look under your host's OpenClaw state directory (commonly `~/.openclaw/`), find the agent's `agent/` folder, and copy every `*.sqlite*` file. The schema is `transcript_events` with `session_id`, `seq`, `created_at`, and an `event_json` payload column.\n3. **Convert the wall-clock window to epoch milliseconds** (use the host's timezone; `+0300` in this example):\n   ```bash\n   date -d \"YYYY-MM-DD HH:MM:SS +0300\" +%s%3N   # repeat for start and end\n   ```\n4. **Locate the user messages in the window** (`event_json` holds `{\"message\":{\"role\":\"user\",\"content\":...}}`):\n   ```bash\n   sqlite3 /tmp/db-inspect/openclaw-agent.sqlite \\\n     \"SELECT seq, created_at, substr(event_json,1,400) FROM transcript_events \\\n      WHERE session_id='<session-id>' AND created_at BETWEEN <t0> AND <t1> \\\n        AND event_json LIKE '%\\\"role\\\":\\\"user\\\"%' ORDER BY seq;\"\n   ```\n5. **Dump the full window and parse it** into readable dialogue:\n   ```bash\n   sqlite3 /tmp/db-inspect/openclaw-agent.sqlite \\\n     \"SELECT event_json FROM transcript_events WHERE session_id='<session-id>' \\\n      AND seq BETWEEN <a> AND <b> ORDER BY seq;\" > /tmp/db-inspect/convo.jsonl\n   ```\n   then in Python print each entry's `role`, timestamp, and content — for assistant entries, only the parts where `type == \"text\"`.\n6. **Persist what matters.** Feed the recovered words back to the user verbatim as proof, then write the recovered idea/concept into a file immediately (e.g. `<project>/IDEA.md`).\n\n**Rule (Sep 2026):** user ideas discussed in-session get written to a file the same session — files survive, sessions don't. If the user asks \"remember the idea we discussed\" and the files have a gap, run this recovery *before* answering.\n\n## Automation registry is memory too (check it when memory_search is empty)\n\nRecurring reminders/automations often hold the only record of an old plan — and their payload text goes stale. When the user references a project and `memory_search` returns nothing (the files were never updated), check the automations registry before answering \"no record\":\n\n1. **List automations** — find the job by name (look for a reminder-style cron, e.g. `0 12 * * 1` = every Monday).\n2. **Read the job** — get `createdAtMs` plus the payload text; convert the timestamp with `python3 -c \"import datetime; print(datetime.datetime.fromtimestamp(<ms>/1000))\"`.\n3. **Beware stale relative time.** If the payload says \"yesterday\"/\"today\" but the job was created days or weeks ago, it re-fires the same stale text on every run — never relay it as fresh news. Verify against the creation date first.\n4. **Rewrite the payload with absolute dates** so future runs stop repeating the stale text.\n\n**Rule:** `memory_search` only greps file layers — automation payloads live outside them. An empty search result does not mean there is no record.\n\n## Security notes\n\n- **Local-first by design.** All memory is plaintext on the machine that runs the agent. Treat memory directories like any personal data: back them up, don't commit them to public repos, and scrub names/secrets before publishing logs anywhere.\n- The daily logs and LATEST file are raw by design — they are the memory. If you keep secrets in your workspace, keep them in a dedicated local store (`secrets/`, `*.env`) that is **git-ignored** and never referenced in log payloads. As a rule: log *that* an action happened, not the credentials it used.\n- Optional off-machine backup should use SSH key authentication only — never credentials or secret-bearing env files in the repo.\n- `memcheck` verifies a local secret store exists; that check is about confirming your agent's credential store is intact — it never reads or prints secret contents.\n\n## Source & license\n\nSource: https://github.com/mozz0/MeshMorize\n\nReleased under the MIT License. See LICENSE in the repository.\n\nFile v4.0.0:README.md\n\n# MeshMorize 🧠\n\nA local-first, file-based memory system for AI agents on OpenClaw-like hosts. Fresh daily layer with 5-day rotation, mesh graph indexing, auto-logging of every exchange, cross-layer grep search, compliance checking, and crash-gap recovery — all in plain Markdown + JSON, all dependency-free Python, all **$0 to run**.\n\n> **Philosophy: memory is files, not sessions.** Sessions die on crashes, compaction, and reinstalls. Files survive. If it isn't written to a file, it didn't happen.\n\n**~1,000+ downloads across GitHub + ClawHub.** Built by an AI and its human for real daily use — it has survived full OS reinstalls with every memory intact.\n\n## The layers\n\n```\nmemory/\n├── fresh/                  # Rolling 5-day window (today → 4-days-ago)\n│   ├── today.md            #   ← read first at session start\n│   ├── yesterday.md\n│   └── ...\n├── YYYY-MM-DD.md           # Daily logs — timestamped record of every exchange\n├── LATEST.md               # Rolling log of the most recent exchanges\n├── mesh.json               # Lightweight node/edge graph with timestamps\n├── checkpoints/            # Crash-recovery snapshots (latest.json + history)\n├── decisions/              # Dated decision records (auto-mesh-linked)\n└── quarters/               # Optional meaning-based day summaries\n```\n\nSearch order is deliberate: **fresh → daily logs → mesh**. Grep-based, instant, no API calls.\n\n## Install\n\n1. **Copy the files into your agent workspace** (`<workspace>/memory/bridge.py`, `<workspace>/scripts/{memory_search,auto_log,memory_check}.py`). The scripts respect `OPENCLAW_WORKSPACE` and default to `~/.openclaw/workspace`.\n2. **Symlink onto your PATH** (~/.local/bin or ~/.npm-global/bin):\n   ```bash\n   ln -s \"$(pwd)/memory/bridge.py\"          ~/.local/bin/mem-bridge\n   ln -s \"$(pwd)/scripts/auto_log.py\"       ~/.local/bin/auto_log\n   ln -s \"$(pwd)/scripts/memory_search.py\"  ~/.local/bin/memory_search\n   ln -s \"$(pwd)/scripts/memory_check.py\"   ~/.local/bin/memcheck\n   ```\n3. **Run the bridge on every session start** (before answering anything):\n   ```bash\n   mem-bridge init-auto     # rotate fresh layer, create today.md, resume checkpoint, log startup\n   ```\n\n## The two protocols\n\n### 1. Search before answer\n```bash\nmemory_search \"<2-5 keywords from the user's message>\"\n```\nRun this **before** answering anything about the past, prior work, decisions, or plans. If there are hits, read the full source file — snippets are context, files are truth. If empty, check the automation registry and checkpoints before claiming \"no record\".\n\n### 2. Log every exchange\n```bash\nauto_log \"what was said, done, or decided\"\n```\nRun this as the **last step** of any meaningful turn. One timestamped entry into today's daily log + `LATEST.md`. Log decisions and results, not trivia.\n\n## Compliance\n\n```bash\nmemcheck\n```\n10-point health check: logger, bridge, today-file age, fresh rotation, core files, mesh, raw log, secret store, PATH tools, heartbeat. The file lists encode one workspace's conventions — treat as a template and adapt.\n\n## Crash-gap recovery\n\nWhen a conversation is missing from the files (dead session, machine off before the periodic dump), recover it from the gateway transcript store instead of guessing:\n\n1. Copy the agent transcript DB — `sqlite3` refuses live files: `cp <openclaw-state>/agents/<agent-id>/agent/openclaw-agent.sqlite* /tmp/db-inspect/`\n2. Convert the wall-clock window to epoch ms (`date -d \"YYYY-MM-DD HH:MM:SS +0300\" +%s%3N`).\n3. Query `transcript_events` (`session_id`, `seq`, `created_at`, `event_json`) for the window.\n4. Parse the JSONL into role/timestamp/content, feed it back verbatim, then persist what mattered into a file the same session.\n\nFull walkthrough with example queries is in `SKILL.md`.\n\n## Automation registry is memory too\n\nRecurring reminders often hold the only record of an old plan. When file search comes up empty, list the automations, read the job's `createdAtMs` + payload, and **never relay stale relative time** (\"yesterday\" fired weeks later) as fresh news — rewrite payloads with absolute dates.\n\n## Security\n\n- **Local-first.** Everything is plaintext on your machine — back it up, don't commit it to public repos.\n- Keep credentials in a dedicated local store (`secrets/`, `*.env`) — **git-ignored**, never in log payloads.\n- Optional off-machine backup: **SSH keys only**. No credentials in this repo, ever.\n- v4 is a clean, local-first release: no network sync scripts, no environment-file sourcing.\n\n## License\n\nMIT — see [LICENSE](LICENSE). Copyright (c) 2026 MeshMorize contributors.\n\nFile v4.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"4.0.0\",\n  \"publishedAt\": 1788886927696\n}\n\nFile v4.0.0:skill-card.md\n\n## Description:\n\nMeshMorize provides a local-first, file-based memory system for AI agents on OpenClaw-like hosts, with rotating recent context, daily logs, mesh indexing, grep search, compliance checks, and crash-gap recovery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and agent operators use MeshMorize to give agents durable local memory across sessions, restarts, and crashes. It helps agents search prior work, log meaningful exchanges, maintain lightweight memory indexes, and recover missing context from approved local sources.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Plaintext local memory can capture sensitive personal data or secrets if the agent logs too broadly.\n\nMitigation: Do not log credentials or unnecessary personal data; keep secrets in a separate ignored local store and scrub memory files before sharing or publishing them.\n\nRisk: Transcript database reads and automation registry changes can expose or alter user context without sufficient scope.\n\nMitigation: Require explicit approval for the exact transcript session, time range, and automation job before reading or changing them, and remove temporary transcript copies after use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/mozz0/skills/josh-learns)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples, file paths, and Python utility scripts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces local filesystem memory artifacts such as Markdown logs, JSON mesh/checkpoint files, and operational command guidance.]\n\n## Skill Version(s):\n\n4.0.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.0.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 MeshMorize contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v3.3.4: 8 files, 23297 bytes\n\nFiles: bridge.py (20110b), memory/bridge.py (21927b), README.md (8362b), scripts/pdf-memory.py (4830b), scripts/pdf-vault-nas-push.sh (1280b), skill-card.md (2577b), SKILL.md (4264b), _meta.json (130b)\n\nFile v3.3.4:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Layers\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search (fresh → daily → mesh → raw → long-term) |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of daily logs + NAS sync |\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log an interaction\nmemory_search \"query\"    # Search all memory layers\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — fresh-layer rotation + checkpoint management |\n| `auto_log` | `scripts/auto_log.py` — interaction logger |\n| `memory_search` | `scripts/memory_search.py` — multi-layer search across all memory stores |\n| `pdf-memory` | `scripts/pdf-memory.py` — daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` — rsync the vault to the NAS, never deletes |\n\n## How to use it, day by day\n\n### Session start (every boot, every reset)\n\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\n\nAlways run this before answering. The agent should never answer from live context alone; memory files are the source of truth.\n\n### During every interaction\n\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\n\nCost: $0 (grep-based, no API calls). If results are found, read the full source file, not just the snippet.\n\n### End of day\n\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\nThe PDF vault is the unbreakable layer. Text files work, PDFs endure.\n\n### After a crash, format, or wipe\n\n1. Read `memory/pdf-vault/README.md` first — it contains the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n### The 04:00 reset defense\n\nSessions can lose context at compaction. Defense layers:\n- `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- Daily pre-compaction dump as close to 04:00 as possible.\n- On any reset or boot: read the daily log BEFORE responding.\n\n## The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe: every daily log rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, the vault README tells the restored agent exactly how to read its way back.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes, 30 secrets. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Install\n\nPut `bridge.py` in `memory/` and scripts in `scripts/` of your agent workspace. Symlink or add to `PATH`:\n\n```bash\nln -s $(pwd)/scripts/* ~/.local/bin/\nln -s $(pwd)/memory/bridge.py ~/.local/bin/mem-bridge\n```\n\nOn session start, run:\n```bash\nmem-bridge init\n```\n\n## Source\n\nhttps://github.com/mozz0/MeshMorize\n\n---\n\n_Made by mozz0 · Released under MIT-0_\n\nFile v3.3.4:README.md\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Architecture\n\n### Four-Layer Design\n\n| Layer | What | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily working notes, auto-rotated 5-day cycle |\n| **Mesh** | `memory/mesh.json` | Persistent graph nodes + edges for relationship search |\n| **Log** | Daily `.md` files | Complete interaction history, preserved forever |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of every daily log + NAS sync |\n\n### Fresh Layer Rotation\n\nThe `bridge.py` script manages a rolling 5-day window:\n\n```\ntoday.md         →  newest (overwritten daily)\nyesterday.md     →  previous day\n2-days-ago.md    →  two days back\n3-days-ago.md    →  three days back\n4-days-ago.md    →  oldest (bumped off the window)\n```\n\n`bridge.py init` rotates and creates fresh today.md.\n`bridge.py checkpoint` snapshots current context.\nRotation does NOT delete logs — daily files persist in `memory/YYYY-MM-DD.md`.\n\n### Mesh Graph\n\nNodes store individual memories. Edges store relationships between them.\n\n```json\n{\n  \"nodes\": [\n    { \"id\": \"user_pref_theme\", \"note\": \"User prefers dark mode\", \"touched\": 1749260000 }\n  ],\n  \"edges\": [\n    { \"source\": \"user_pref_theme\", \"target\": \"config_loaded\", \"relation\": \"triggers\", \"label\": \"Theme applied on config load\" }\n  ]\n}\n```\n\nEdges let agents find connections between memories: `\"triggers\"`, `\"depends_on\"`, `\"related_to\"`, etc.\n\n### The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe. Every daily log is rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, a `README.md` at the vault root tells the restored agent exactly how to read its way back.\n\nText works. PDFs endure.\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log every interaction (timestamped)\nmemory_search \"query\"    # Search all layers + fuzzy matching\nmemcheck                 # Full 10-point compliance check\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n### Day-by-day workflow\n\n**Session start (every boot, every reset):**\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\nAlways run this before answering. Memory files are the source of truth, not live context.\n\n**Every interaction:**\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\nCost: $0 (grep-based, no API calls). If results are found, read the full source file.\n\n**End of day:**\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\n**After a crash, format, or wipe:**\n1. Read `memory/pdf-vault/README.md` first — the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n**The 04:00 reset defense:**\n- A `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- On any reset or boot: read the daily log BEFORE responding.\n\n## Install\n\n```bash\n# Clone\ngit clone https://github.com/mozz0/MeshMorize ~/.openclaw/workspace/MeshMorize\n\n# Symlink tools to PATH\nln -sf $(pwd)/MeshMorize/scripts/* ~/.local/bin/\nln -sf $(pwd)/MeshMorize/memory/bridge.py ~/.local/bin/mem-bridge\n\n# Set workspace (optional, defaults to ~/.openclaw/workspace)\nexport OPENCLAW_WORKSPACE=/path/to/your/workspace\n```\n\nOn session start, add to your AGENTS.md:\n```\n1. `mem-bridge init`\n2. `auto_log \"session start\" \"ready\"`\n3. `memcheck`\n```\n\n## Tools\n\n| Tool | Source | What it does |\n|------|--------|-------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, checkpoint, node add/touch |\n| `auto_log` | `scripts/auto_log` | Timestamped interaction logger |\n| `memory_search` | `scripts/memory_search` | Multi-layer search + fuzzy matching + edge search |\n| `memcheck` | `scripts/memory_check` | 10-point compliance check |\n| `pdf-memory` | `scripts/pdf-memory.py` | Daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` | rsync the vault to the NAS, never deletes |\n\nAll tools respect `$OPENCLAW_WORKSPACE` env var with fallback to `~/.openclaw/workspace`.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Security\n\n- **No secrets in this repo. No secrets in the scripts either.** The optional NAS sync uses SSH key auth (`~/.ssh/mesh_nas`) — zero passwords, zero env credentials, nothing to leak. Host verification is ON (`StrictHostKeyChecking=yes` against `~/.ssh/known_hosts`).\n- **NAS sync is OPTIONAL and off by default.** Nothing is transmitted anywhere unless you set up the key and run `vault-push` yourself. The vault lives and works fine fully local.\n- **Know what gets archived — and keep it safe.** MeshMorize is a memory system by design: it stores plaintext logs, checkpoints, and PDFs so your agent can survive resets. That means:\n  - Don't feed it passwords, tokens, or private keys. If your agent touches sensitive data, add a redaction step before `auto_log`.\n  - Daily logs and the PDF vault are plaintext on disk. Protect the workspace with OS file permissions, encrypt the disk if the machine is portable, and treat memory files like any other sensitive document.\n  - Retention is up to you: the logs rotate (5-day fresh window), the PDF vault is incremental, and you can delete `memory/` or `memory/pdf-vault/` at any time — nothing is locked in.\n  - Review what `session_wrap` and checkpoint resume re-surface into fresh layers. If your use case is high-sensitivity, disable auto-wrap and require explicit load.\n- **Opt-in, not automatic.** Logging, archiving, and syncing only happen when you run the tools. There is no background daemon and no hidden transmission.\n\n## Source\n\nhttps://clawhub.ai/mozz0/josh-learns | https://github.com/mozz0/MeshMorize\n\n## End-to-End Example\n\n```bash\n# Session start\nmem-bridge init           # → Rotates fresh layer, creates today.md\nmem-bridge summarize      # → Auto-generates recap from yesterday's logs\nauto_log \"session start\"  \"ready to work\"\n\n# During session\nauto_log \"user asked about laser\" \"i found calibration data from yesterday\"\nmemory_search \"laser calibration\"  # → Searches all layers + fuzzy match\n\n# Learning something new\n# → auto_log captures everything automatically\n# → mesh.json stores persistent nodes + edges\n\n# Session end\nmem-bridge checkpoint     # → Snapshots context for next session start\n\n# Archive day\npdf-memory                # → daily log becomes a verbatim PDF\nvault-push                # → vault syncs to the NAS\n```\n\n## What's New in v3.3.0\n\n- **PDF Memory Vault** — verbatim PDF archive of every daily log + NAS sync (`pdf-memory`, `vault-push`)\n- **Rebirth README** — recovery instructions inside the vault for post-wipe restoration\n- **Day-by-day usage guide** — session start, per-interaction, end-of-day, crash recovery\n- **04:00 reset defense** — session dumper documented\n- Battle-tested story: survived a full system format with all memory intact\n\n## What's New in v3.2.0\n\n- `$OPENCLAW_WORKSPACE` env var — portable across setups\n- Mesh edges — nodes now link via `triggers`, `depends_on`, `related_to`\n- Fuzzy search — handles typos automatically\n- `mem-bridge summarize` — auto-generates today's recap from yesterday's logs\n- All tools pass `memcheck` 10-point compliance\n\n---\n\n_Made by mozz0 · Released under MIT_\n\nFile v3.3.4:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.3.4\",\n  \"publishedAt\": 1786838762362\n}\n\nFile v3.3.4:skill-card.md\n\n## Description:\n\nMulti-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agent operators use MeshMorize to give Python-capable agents persistent local memory across sessions, including daily working notes, graph-backed search, interaction logs, and PDF archival. It is suited to agent workspaces where users intentionally want durable memory and can manage storage, retention, and sync behavior.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill is designed to preserve long-lived plaintext memory of agent interactions, which can expose sensitive, regulated, or confidential information if users log it.\n\nMitigation: Use it only for data you intend to retain, avoid passwords, tokens, private keys, regulated data, and confidential work, and add redaction, retention, and access controls before high-sensitivity use.\n\nRisk: The PDF vault can sync archives to a hard-coded NAS destination when the sync script is configured and run.\n\nMitigation: Review, remove, or reconfigure the NAS sync script before use, and confirm the destination, SSH key, and host verification settings match the intended environment.\n\nRisk: Documented session-dumper behavior may preserve live session content more broadly than a user expects.\n\nMitigation: Clarify or disable any session-dumper cron before deployment, and require explicit logging for workspaces that need tighter retention control.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/mozz0/skills/josh-learns)\n- [Project Link Cited by Artifact Documentation](https://github.com/mozz0/MeshMorize)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands; generated memory data is stored as Markdown, JSON, and PDF files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Creates and updates local memory files, graph data, daily logs, and optional PDF vault archives.]\n\n## Skill Version(s):\n\n3.3.4 (source: server-resolved release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v3.3.3: 8 files, 23202 bytes\n\nFiles: bridge.py (20110b), memory/bridge.py (21927b), README.md (8362b), scripts/pdf-memory.py (4830b), scripts/pdf-vault-nas-push.sh (1280b), skill-card.md (2392b), SKILL.md (4264b), _meta.json (130b)\n\nFile v3.3.3:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Layers\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search (fresh → daily → mesh → raw → long-term) |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of daily logs + NAS sync |\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log an interaction\nmemory_search \"query\"    # Search all memory layers\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — fresh-layer rotation + checkpoint management |\n| `auto_log` | `scripts/auto_log.py` — interaction logger |\n| `memory_search` | `scripts/memory_search.py` — multi-layer search across all memory stores |\n| `pdf-memory` | `scripts/pdf-memory.py` — daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` — rsync the vault to the NAS, never deletes |\n\n## How to use it, day by day\n\n### Session start (every boot, every reset)\n\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\n\nAlways run this before answering. The agent should never answer from live context alone; memory files are the source of truth.\n\n### During every interaction\n\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\n\nCost: $0 (grep-based, no API calls). If results are found, read the full source file, not just the snippet.\n\n### End of day\n\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\nThe PDF vault is the unbreakable layer. Text files work, PDFs endure.\n\n### After a crash, format, or wipe\n\n1. Read `memory/pdf-vault/README.md` first — it contains the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n### The 04:00 reset defense\n\nSessions can lose context at compaction. Defense layers:\n- `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- Daily pre-compaction dump as close to 04:00 as possible.\n- On any reset or boot: read the daily log BEFORE responding.\n\n## The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe: every daily log rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, the vault README tells the restored agent exactly how to read its way back.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes, 30 secrets. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Install\n\nPut `bridge.py` in `memory/` and scripts in `scripts/` of your agent workspace. Symlink or add to `PATH`:\n\n```bash\nln -s $(pwd)/scripts/* ~/.local/bin/\nln -s $(pwd)/memory/bridge.py ~/.local/bin/mem-bridge\n```\n\nOn session start, run:\n```bash\nmem-bridge init\n```\n\n## Source\n\nhttps://github.com/mozz0/MeshMorize\n\n---\n\n_Made by mozz0 · Released under MIT-0_\n\nFile v3.3.3:README.md\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Architecture\n\n### Four-Layer Design\n\n| Layer | What | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily working notes, auto-rotated 5-day cycle |\n| **Mesh** | `memory/mesh.json` | Persistent graph nodes + edges for relationship search |\n| **Log** | Daily `.md` files | Complete interaction history, preserved forever |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of every daily log + NAS sync |\n\n### Fresh Layer Rotation\n\nThe `bridge.py` script manages a rolling 5-day window:\n\n```\ntoday.md         →  newest (overwritten daily)\nyesterday.md     →  previous day\n2-days-ago.md    →  two days back\n3-days-ago.md    →  three days back\n4-days-ago.md    →  oldest (bumped off the window)\n```\n\n`bridge.py init` rotates and creates fresh today.md.\n`bridge.py checkpoint` snapshots current context.\nRotation does NOT delete logs — daily files persist in `memory/YYYY-MM-DD.md`.\n\n### Mesh Graph\n\nNodes store individual memories. Edges store relationships between them.\n\n```json\n{\n  \"nodes\": [\n    { \"id\": \"user_pref_theme\", \"note\": \"User prefers dark mode\", \"touched\": 1749260000 }\n  ],\n  \"edges\": [\n    { \"source\": \"user_pref_theme\", \"target\": \"config_loaded\", \"relation\": \"triggers\", \"label\": \"Theme applied on config load\" }\n  ]\n}\n```\n\nEdges let agents find connections between memories: `\"triggers\"`, `\"depends_on\"`, `\"related_to\"`, etc.\n\n### The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe. Every daily log is rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, a `README.md` at the vault root tells the restored agent exactly how to read its way back.\n\nText works. PDFs endure.\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log every interaction (timestamped)\nmemory_search \"query\"    # Search all layers + fuzzy matching\nmemcheck                 # Full 10-point compliance check\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n### Day-by-day workflow\n\n**Session start (every boot, every reset):**\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\nAlways run this before answering. Memory files are the source of truth, not live context.\n\n**Every interaction:**\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\nCost: $0 (grep-based, no API calls). If results are found, read the full source file.\n\n**End of day:**\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\n**After a crash, format, or wipe:**\n1. Read `memory/pdf-vault/README.md` first — the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n**The 04:00 reset defense:**\n- A `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- On any reset or boot: read the daily log BEFORE responding.\n\n## Install\n\n```bash\n# Clone\ngit clone https://github.com/mozz0/MeshMorize ~/.openclaw/workspace/MeshMorize\n\n# Symlink tools to PATH\nln -sf $(pwd)/MeshMorize/scripts/* ~/.local/bin/\nln -sf $(pwd)/MeshMorize/memory/bridge.py ~/.local/bin/mem-bridge\n\n# Set workspace (optional, defaults to ~/.openclaw/workspace)\nexport OPENCLAW_WORKSPACE=/path/to/your/workspace\n```\n\nOn session start, add to your AGENTS.md:\n```\n1. `mem-bridge init`\n2. `auto_log \"session start\" \"ready\"`\n3. `memcheck`\n```\n\n## Tools\n\n| Tool | Source | What it does |\n|------|--------|-------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, checkpoint, node add/touch |\n| `auto_log` | `scripts/auto_log` | Timestamped interaction logger |\n| `memory_search` | `scripts/memory_search` | Multi-layer search + fuzzy matching + edge search |\n| `memcheck` | `scripts/memory_check` | 10-point compliance check |\n| `pdf-memory` | `scripts/pdf-memory.py` | Daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` | rsync the vault to the NAS, never deletes |\n\nAll tools respect `$OPENCLAW_WORKSPACE` env var with fallback to `~/.openclaw/workspace`.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Security\n\n- **No secrets in this repo. No secrets in the scripts either.** The optional NAS sync uses SSH key auth (`~/.ssh/mesh_nas`) — zero passwords, zero env credentials, nothing to leak. Host verification is ON (`StrictHostKeyChecking=yes` against `~/.ssh/known_hosts`).\n- **NAS sync is OPTIONAL and off by default.** Nothing is transmitted anywhere unless you set up the key and run `vault-push` yourself. The vault lives and works fine fully local.\n- **Know what gets archived — and keep it safe.** MeshMorize is a memory system by design: it stores plaintext logs, checkpoints, and PDFs so your agent can survive resets. That means:\n  - Don't feed it passwords, tokens, or private keys. If your agent touches sensitive data, add a redaction step before `auto_log`.\n  - Daily logs and the PDF vault are plaintext on disk. Protect the workspace with OS file permissions, encrypt the disk if the machine is portable, and treat memory files like any other sensitive document.\n  - Retention is up to you: the logs rotate (5-day fresh window), the PDF vault is incremental, and you can delete `memory/` or `memory/pdf-vault/` at any time — nothing is locked in.\n  - Review what `session_wrap` and checkpoint resume re-surface into fresh layers. If your use case is high-sensitivity, disable auto-wrap and require explicit load.\n- **Opt-in, not automatic.** Logging, archiving, and syncing only happen when you run the tools. There is no background daemon and no hidden transmission.\n\n## Source\n\nhttps://clawhub.ai/mozz0/josh-learns | https://github.com/mozz0/MeshMorize\n\n## End-to-End Example\n\n```bash\n# Session start\nmem-bridge init           # → Rotates fresh layer, creates today.md\nmem-bridge summarize      # → Auto-generates recap from yesterday's logs\nauto_log \"session start\"  \"ready to work\"\n\n# During session\nauto_log \"user asked about laser\" \"i found calibration data from yesterday\"\nmemory_search \"laser calibration\"  # → Searches all layers + fuzzy match\n\n# Learning something new\n# → auto_log captures everything automatically\n# → mesh.json stores persistent nodes + edges\n\n# Session end\nmem-bridge checkpoint     # → Snapshots context for next session start\n\n# Archive day\npdf-memory                # → daily log becomes a verbatim PDF\nvault-push                # → vault syncs to the NAS\n```\n\n## What's New in v3.3.0\n\n- **PDF Memory Vault** — verbatim PDF archive of every daily log + NAS sync (`pdf-memory`, `vault-push`)\n- **Rebirth README** — recovery instructions inside the vault for post-wipe restoration\n- **Day-by-day usage guide** — session start, per-interaction, end-of-day, crash recovery\n- **04:00 reset defense** — session dumper documented\n- Battle-tested story: survived a full system format with all memory intact\n\n## What's New in v3.2.0\n\n- `$OPENCLAW_WORKSPACE` env var — portable across setups\n- Mesh edges — nodes now link via `triggers`, `depends_on`, `related_to`\n- Fuzzy search — handles typos automatically\n- `mem-bridge summarize` — auto-generates today's recap from yesterday's logs\n- All tools pass `memcheck` 10-point compliance\n\n---\n\n_Made by mozz0 · Released under MIT_\n\nFile v3.3.3:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.3.3\",\n  \"publishedAt\": 1786837787277\n}\n\nFile v3.3.3:skill-card.md\n\n## Description:\n\nMeshMorize gives agents a local multi-layer memory system with daily notes, graph indexing, auto-logging, cross-layer search, compliance checks, PDF archiving, and optional NAS sync.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use MeshMorize to give an LLM agent persistent local memory across sessions, including searchable plaintext logs, mesh relationships, and PDF archives. It is most appropriate when the operator intentionally wants conversation history retained on disk and can manage privacy, retention, and optional sync controls.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Conversation history may be retained as plaintext memory files and PDFs.\n\nMitigation: Use the skill only for workflows where persistent local memory is intended, avoid logging secrets or regulated data, and add redaction before routine use.\n\nRisk: Verbatim archives may be synced to a NAS when the operator runs `vault-push`.\n\nMitigation: Run NAS sync only with an owned and reviewed destination, SSH key, and known_hosts configuration; keep sync disabled for sensitive or untrusted environments.\n\nRisk: Retention and deletion controls are limited by default.\n\nMitigation: Define a retention policy before deployment and periodically delete or rotate `memory/` and `memory/pdf-vault/` content according to that policy.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/mozz0/skills/josh-learns)\n- [Project Link Listed in Artifact](https://github.com/mozz0/MeshMorize)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Code, Shell commands, Configuration, Files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands and generated local Markdown, JSON, PDF, and index files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces persistent plaintext memory files and optional PDF archives; NAS sync is operator-triggered.]\n\n## Skill Version(s):\n\n3.3.3 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v3.3.2: 8 files, 22628 bytes\n\nFiles: bridge.py (20110b), memory/bridge.py (21927b), README.md (7423b), scripts/pdf-memory.py (4830b), scripts/pdf-vault-nas-push.sh (1280b), skill-card.md (2063b), SKILL.md (4264b), _meta.json (130b)\n\nFile v3.3.2:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Layers\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search (fresh → daily → mesh → raw → long-term) |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of daily logs + NAS sync |\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log an interaction\nmemory_search \"query\"    # Search all memory layers\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — fresh-layer rotation + checkpoint management |\n| `auto_log` | `scripts/auto_log.py` — interaction logger |\n| `memory_search` | `scripts/memory_search.py` — multi-layer search across all memory stores |\n| `pdf-memory` | `scripts/pdf-memory.py` — daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` — rsync the vault to the NAS, never deletes |\n\n## How to use it, day by day\n\n### Session start (every boot, every reset)\n\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\n\nAlways run this before answering. The agent should never answer from live context alone; memory files are the source of truth.\n\n### During every interaction\n\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\n\nCost: $0 (grep-based, no API calls). If results are found, read the full source file, not just the snippet.\n\n### End of day\n\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\nThe PDF vault is the unbreakable layer. Text files work, PDFs endure.\n\n### After a crash, format, or wipe\n\n1. Read `memory/pdf-vault/README.md` first — it contains the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n### The 04:00 reset defense\n\nSessions can lose context at compaction. Defense layers:\n- `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- Daily pre-compaction dump as close to 04:00 as possible.\n- On any reset or boot: read the daily log BEFORE responding.\n\n## The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe: every daily log rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, the vault README tells the restored agent exactly how to read its way back.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes, 30 secrets. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Install\n\nPut `bridge.py` in `memory/` and scripts in `scripts/` of your agent workspace. Symlink or add to `PATH`:\n\n```bash\nln -s $(pwd)/scripts/* ~/.local/bin/\nln -s $(pwd)/memory/bridge.py ~/.local/bin/mem-bridge\n```\n\nOn session start, run:\n```bash\nmem-bridge init\n```\n\n## Source\n\nhttps://github.com/mozz0/MeshMorize\n\n---\n\n_Made by mozz0 · Released under MIT-0_\n\nFile v3.3.2:README.md\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Architecture\n\n### Four-Layer Design\n\n| Layer | What | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily working notes, auto-rotated 5-day cycle |\n| **Mesh** | `memory/mesh.json` | Persistent graph nodes + edges for relationship search |\n| **Log** | Daily `.md` files | Complete interaction history, preserved forever |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of every daily log + NAS sync |\n\n### Fresh Layer Rotation\n\nThe `bridge.py` script manages a rolling 5-day window:\n\n```\ntoday.md         →  newest (overwritten daily)\nyesterday.md     →  previous day\n2-days-ago.md    →  two days back\n3-days-ago.md    →  three days back\n4-days-ago.md    →  oldest (bumped off the window)\n```\n\n`bridge.py init` rotates and creates fresh today.md.\n`bridge.py checkpoint` snapshots current context.\nRotation does NOT delete logs — daily files persist in `memory/YYYY-MM-DD.md`.\n\n### Mesh Graph\n\nNodes store individual memories. Edges store relationships between them.\n\n```json\n{\n  \"nodes\": [\n    { \"id\": \"user_pref_theme\", \"note\": \"User prefers dark mode\", \"touched\": 1749260000 }\n  ],\n  \"edges\": [\n    { \"source\": \"user_pref_theme\", \"target\": \"config_loaded\", \"relation\": \"triggers\", \"label\": \"Theme applied on config load\" }\n  ]\n}\n```\n\nEdges let agents find connections between memories: `\"triggers\"`, `\"depends_on\"`, `\"related_to\"`, etc.\n\n### The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe. Every daily log is rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, a `README.md` at the vault root tells the restored agent exactly how to read its way back.\n\nText works. PDFs endure.\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log every interaction (timestamped)\nmemory_search \"query\"    # Search all layers + fuzzy matching\nmemcheck                 # Full 10-point compliance check\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n### Day-by-day workflow\n\n**Session start (every boot, every reset):**\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\nAlways run this before answering. Memory files are the source of truth, not live context.\n\n**Every interaction:**\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\nCost: $0 (grep-based, no API calls). If results are found, read the full source file.\n\n**End of day:**\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\n**After a crash, format, or wipe:**\n1. Read `memory/pdf-vault/README.md` first — the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n**The 04:00 reset defense:**\n- A `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- On any reset or boot: read the daily log BEFORE responding.\n\n## Install\n\n```bash\n# Clone\ngit clone https://github.com/mozz0/MeshMorize ~/.openclaw/workspace/MeshMorize\n\n# Symlink tools to PATH\nln -sf $(pwd)/MeshMorize/scripts/* ~/.local/bin/\nln -sf $(pwd)/MeshMorize/memory/bridge.py ~/.local/bin/mem-bridge\n\n# Set workspace (optional, defaults to ~/.openclaw/workspace)\nexport OPENCLAW_WORKSPACE=/path/to/your/workspace\n```\n\nOn session start, add to your AGENTS.md:\n```\n1. `mem-bridge init`\n2. `auto_log \"session start\" \"ready\"`\n3. `memcheck`\n```\n\n## Tools\n\n| Tool | Source | What it does |\n|------|--------|-------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, checkpoint, node add/touch |\n| `auto_log` | `scripts/auto_log` | Timestamped interaction logger |\n| `memory_search` | `scripts/memory_search` | Multi-layer search + fuzzy matching + edge search |\n| `memcheck` | `scripts/memory_check` | 10-point compliance check |\n| `pdf-memory` | `scripts/pdf-memory.py` | Daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` | rsync the vault to the NAS, never deletes |\n\nAll tools respect `$OPENCLAW_WORKSPACE` env var with fallback to `~/.openclaw/workspace`.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Security\n\n- **No secrets in this repo.** Credentials for the optional NAS sync live in `~/.config/mesh/nas.env` (chmod 600, gitignored) — never in the scripts.\n- **SSH host verification is ON.** The vault-push script uses `StrictHostKeyChecking=yes` against `~/.ssh/known_hosts`; add the NAS key once with `ssh-keyscan -H <ip> >> ~/.ssh/known_hosts`.\n- **Know what gets archived.** `auto_log` stores whatever you feed it — avoid logging passwords, tokens, or private keys. If your agent handles sensitive data, add a redaction step before logging.\n\n## Source\n\nhttps://clawhub.ai/mozz0/josh-learns | https://github.com/mozz0/MeshMorize\n\n## End-to-End Example\n\n```bash\n# Session start\nmem-bridge init           # → Rotates fresh layer, creates today.md\nmem-bridge summarize      # → Auto-generates recap from yesterday's logs\nauto_log \"session start\"  \"ready to work\"\n\n# During session\nauto_log \"user asked about laser\" \"i found calibration data from yesterday\"\nmemory_search \"laser calibration\"  # → Searches all layers + fuzzy match\n\n# Learning something new\n# → auto_log captures everything automatically\n# → mesh.json stores persistent nodes + edges\n\n# Session end\nmem-bridge checkpoint     # → Snapshots context for next session start\n\n# Archive day\npdf-memory                # → daily log becomes a verbatim PDF\nvault-push                # → vault syncs to the NAS\n```\n\n## What's New in v3.3.0\n\n- **PDF Memory Vault** — verbatim PDF archive of every daily log + NAS sync (`pdf-memory`, `vault-push`)\n- **Rebirth README** — recovery instructions inside the vault for post-wipe restoration\n- **Day-by-day usage guide** — session start, per-interaction, end-of-day, crash recovery\n- **04:00 reset defense** — session dumper documented\n- Battle-tested story: survived a full system format with all memory intact\n\n## What's New in v3.2.0\n\n- `$OPENCLAW_WORKSPACE` env var — portable across setups\n- Mesh edges — nodes now link via `triggers`, `depends_on`, `related_to`\n- Fuzzy search — handles typos automatically\n- `mem-bridge summarize` — auto-generates today's recap from yesterday's logs\n- All tools pass `memcheck` 10-point compliance\n\n---\n\n_Made by mozz0 · Released under MIT_\n\nFile v3.3.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.3.2\",\n  \"publishedAt\": 1786837264109\n}\n\nFile v3.3.2:skill-card.md\n\n## Description:\n\nMulti-layer memory system for agents with daily working notes, mesh graph search, interaction logging, compliance checks, PDF archive generation, and optional NAS sync.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to give an agent persistent workspace memory, searchable notes, daily interaction logs, and PDF archives that can be recovered after resets or system loss.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Conversation history and operational notes may be stored in plaintext memory files and summarized into future context.\n\nMitigation: Use only for intended memory workflows, avoid secrets and regulated or sensitive personal data, and add redaction and retention controls before sensitive use.\n\nRisk: PDF archives may preserve full daily logs and can be synced to a NAS.\n\nMitigation: Review the NAS and SSH settings, confirm the destination and access controls, and enable vault sync only where long-term archival is intended.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/mozz0/skills/josh-learns)\n- [Publisher profile](https://clawhub.ai/user/mozz0)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, markdown, code, configuration]\n\n**Output Format:** [Markdown guidance with inline shell commands and Python or shell utilities that write local memory files and PDF archives]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces and updates plaintext memory files, mesh JSON, daily logs, PDF archive files, and optional rsync-based NAS copies.]\n\n## Skill Version(s):\n\n3.3.2 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v3.3.1: 7 files, 16739 bytes\n\nFiles: memory/bridge.py (21927b), README.md (7423b), scripts/pdf-memory.py (4830b), scripts/pdf-vault-nas-push.sh (1703b), skill-card.md (2086b), SKILL.md (4264b), _meta.json (130b)\n\nFile v3.3.1:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Layers\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search (fresh → daily → mesh → raw → long-term) |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of daily logs + NAS sync |\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log an interaction\nmemory_search \"query\"    # Search all memory layers\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — fresh-layer rotation + checkpoint management |\n| `auto_log` | `scripts/auto_log.py` — interaction logger |\n| `memory_search` | `scripts/memory_search.py` — multi-layer search across all memory stores |\n| `pdf-memory` | `scripts/pdf-memory.py` — daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` — rsync the vault to the NAS, never deletes |\n\n## How to use it, day by day\n\n### Session start (every boot, every reset)\n\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\n\nAlways run this before answering. The agent should never answer from live context alone; memory files are the source of truth.\n\n### During every interaction\n\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\n\nCost: $0 (grep-based, no API calls). If results are found, read the full source file, not just the snippet.\n\n### End of day\n\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\nThe PDF vault is the unbreakable layer. Text files work, PDFs endure.\n\n### After a crash, format, or wipe\n\n1. Read `memory/pdf-vault/README.md` first — it contains the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n### The 04:00 reset defense\n\nSessions can lose context at compaction. Defense layers:\n- `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- Daily pre-compaction dump as close to 04:00 as possible.\n- On any reset or boot: read the daily log BEFORE responding.\n\n## The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe: every daily log rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, the vault README tells the restored agent exactly how to read its way back.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes, 30 secrets. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Install\n\nPut `bridge.py` in `memory/` and scripts in `scripts/` of your agent workspace. Symlink or add to `PATH`:\n\n```bash\nln -s $(pwd)/scripts/* ~/.local/bin/\nln -s $(pwd)/memory/bridge.py ~/.local/bin/mem-bridge\n```\n\nOn session start, run:\n```bash\nmem-bridge init\n```\n\n## Source\n\nhttps://github.com/mozz0/MeshMorize\n\n---\n\n_Made by mozz0 · Released under MIT-0_\n\nFile v3.3.1:README.md\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Architecture\n\n### Four-Layer Design\n\n| Layer | What | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily working notes, auto-rotated 5-day cycle |\n| **Mesh** | `memory/mesh.json` | Persistent graph nodes + edges for relationship search |\n| **Log** | Daily `.md` files | Complete interaction history, preserved forever |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of every daily log + NAS sync |\n\n### Fresh Layer Rotation\n\nThe `bridge.py` script manages a rolling 5-day window:\n\n```\ntoday.md         →  newest (overwritten daily)\nyesterday.md     →  previous day\n2-days-ago.md    →  two days back\n3-days-ago.md    →  three days back\n4-days-ago.md    →  oldest (bumped off the window)\n```\n\n`bridge.py init` rotates and creates fresh today.md.\n`bridge.py checkpoint` snapshots current context.\nRotation does NOT delete logs — daily files persist in `memory/YYYY-MM-DD.md`.\n\n### Mesh Graph\n\nNodes store individual memories. Edges store relationships between them.\n\n```json\n{\n  \"nodes\": [\n    { \"id\": \"user_pref_theme\", \"note\": \"User prefers dark mode\", \"touched\": 1749260000 }\n  ],\n  \"edges\": [\n    { \"source\": \"user_pref_theme\", \"target\": \"config_loaded\", \"relation\": \"triggers\", \"label\": \"Theme applied on config load\" }\n  ]\n}\n```\n\nEdges let agents find connections between memories: `\"triggers\"`, `\"depends_on\"`, `\"related_to\"`, etc.\n\n### The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe. Every daily log is rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, a `README.md` at the vault root tells the restored agent exactly how to read its way back.\n\nText works. PDFs endure.\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log every interaction (timestamped)\nmemory_search \"query\"    # Search all layers + fuzzy matching\nmemcheck                 # Full 10-point compliance check\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n### Day-by-day workflow\n\n**Session start (every boot, every reset):**\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\nAlways run this before answering. Memory files are the source of truth, not live context.\n\n**Every interaction:**\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\nCost: $0 (grep-based, no API calls). If results are found, read the full source file.\n\n**End of day:**\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\n**After a crash, format, or wipe:**\n1. Read `memory/pdf-vault/README.md` first — the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n**The 04:00 reset defense:**\n- A `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- On any reset or boot: read the daily log BEFORE responding.\n\n## Install\n\n```bash\n# Clone\ngit clone https://github.com/mozz0/MeshMorize ~/.openclaw/workspace/MeshMorize\n\n# Symlink tools to PATH\nln -sf $(pwd)/MeshMorize/scripts/* ~/.local/bin/\nln -sf $(pwd)/MeshMorize/memory/bridge.py ~/.local/bin/mem-bridge\n\n# Set workspace (optional, defaults to ~/.openclaw/workspace)\nexport OPENCLAW_WORKSPACE=/path/to/your/workspace\n```\n\nOn session start, add to your AGENTS.md:\n```\n1. `mem-bridge init`\n2. `auto_log \"session start\" \"ready\"`\n3. `memcheck`\n```\n\n## Tools\n\n| Tool | Source | What it does |\n|------|--------|-------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, checkpoint, node add/touch |\n| `auto_log` | `scripts/auto_log` | Timestamped interaction logger |\n| `memory_search` | `scripts/memory_search` | Multi-layer search + fuzzy matching + edge search |\n| `memcheck` | `scripts/memory_check` | 10-point compliance check |\n| `pdf-memory` | `scripts/pdf-memory.py` | Daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` | rsync the vault to the NAS, never deletes |\n\nAll tools respect `$OPENCLAW_WORKSPACE` env var with fallback to `~/.openclaw/workspace`.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Security\n\n- **No secrets in this repo.** Credentials for the optional NAS sync live in `~/.config/mesh/nas.env` (chmod 600, gitignored) — never in the scripts.\n- **SSH host verification is ON.** The vault-push script uses `StrictHostKeyChecking=yes` against `~/.ssh/known_hosts`; add the NAS key once with `ssh-keyscan -H <ip> >> ~/.ssh/known_hosts`.\n- **Know what gets archived.** `auto_log` stores whatever you feed it — avoid logging passwords, tokens, or private keys. If your agent handles sensitive data, add a redaction step before logging.\n\n## Source\n\nhttps://clawhub.ai/mozz0/josh-learns | https://github.com/mozz0/MeshMorize\n\n## End-to-End Example\n\n```bash\n# Session start\nmem-bridge init           # → Rotates fresh layer, creates today.md\nmem-bridge summarize      # → Auto-generates recap from yesterday's logs\nauto_log \"session start\"  \"ready to work\"\n\n# During session\nauto_log \"user asked about laser\" \"i found calibration data from yesterday\"\nmemory_search \"laser calibration\"  # → Searches all layers + fuzzy match\n\n# Learning something new\n# → auto_log captures everything automatically\n# → mesh.json stores persistent nodes + edges\n\n# Session end\nmem-bridge checkpoint     # → Snapshots context for next session start\n\n# Archive day\npdf-memory                # → daily log becomes a verbatim PDF\nvault-push                # → vault syncs to the NAS\n```\n\n## What's New in v3.3.0\n\n- **PDF Memory Vault** — verbatim PDF archive of every daily log + NAS sync (`pdf-memory`, `vault-push`)\n- **Rebirth README** — recovery instructions inside the vault for post-wipe restoration\n- **Day-by-day usage guide** — session start, per-interaction, end-of-day, crash recovery\n- **04:00 reset defense** — session dumper documented\n- Battle-tested story: survived a full system format with all memory intact\n\n## What's New in v3.2.0\n\n- `$OPENCLAW_WORKSPACE` env var — portable across setups\n- Mesh edges — nodes now link via `triggers`, `depends_on`, `related_to`\n- Fuzzy search — handles typos automatically\n- `mem-bridge summarize` — auto-generates today's recap from yesterday's logs\n- All tools pass `memcheck` 10-point compliance\n\n---\n\n_Made by mozz0 · Released under MIT_\n\nFile v3.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.3.1\",\n  \"publishedAt\": 1786836856642\n}\n\nFile v3.3.1:skill-card.md\n\n## Description:\n\nA multi-layer memory system for LLM agents with daily notes, mesh graph indexing, auto-logging, cross-layer search, compliance checks, PDF archiving, and optional NAS sync.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to give an OpenClaw-compatible agent persistent memory across sessions, searchable logs, and PDF vault archives for recovery. It is intended for agents that can run local Python and shell commands.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill persistently records and reuses conversation history, which can capture sensitive user or system content.\n\nMitigation: Configure redaction and retention before deployment, and avoid logging passwords, tokens, private keys, or other sensitive data.\n\nRisk: The PDF vault can replicate verbatim archives to a NAS using stored credentials.\n\nMitigation: Disable NAS sync unless needed, store credentials in a chmod 600 environment file, prefer restricted SSH keys over password-based sshpass, and keep SSH host-key verification enabled.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/mozz0/skills/josh-learns)\n- [MeshMorize source repository](https://github.com/mozz0/MeshMorize)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Files]\n\n**Output Format:** [Markdown guidance with inline shell commands and generated local memory/PDF files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Writes and rotates local memory files, creates PDF archive files, and can sync the vault to a configured NAS.]\n\n## Skill Version(s):\n\n3.3.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v3.3.0: 8 files, 15498 bytes\n\nFiles: memory/bridge.py (21927b), scripts/auto_log.py (913b), scripts/memory_search.py (5056b), scripts/pdf-memory.py (4830b), scripts/pdf-vault-nas-push.sh (991b), skill-card.md (2238b), SKILL.md (4264b), _meta.json (130b)\n\nFile v3.3.0:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, compliance checks, and a PDF vault that survives anything.\n\nBuilt for OpenClaw. Works with any agent that can run Python.\n\n## Layers\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search (fresh → daily → mesh → raw → long-term) |\n| **Vault** | `memory/pdf-vault/` | Verbatim PDF archive of daily logs + NAS sync |\n\n## Quick start\n\n```bash\nmem-bridge init          # Rotate fresh layer, create today.md\nauto_log \"msg\" \"reply\"   # Log an interaction\nmemory_search \"query\"    # Search all memory layers\npdf-memory               # Archive new daily logs as PDFs (incremental)\nvault-push               # Sync the PDF vault to the NAS (LAN + Tailscale)\n```\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — fresh-layer rotation + checkpoint management |\n| `auto_log` | `scripts/auto_log.py` — interaction logger |\n| `memory_search` | `scripts/memory_search.py` — multi-layer search across all memory stores |\n| `pdf-memory` | `scripts/pdf-memory.py` — daily logs → verbatim PDFs, incremental, Unicode-safe |\n| `vault-push` | `scripts/pdf-vault-nas-push.sh` — rsync the vault to the NAS, never deletes |\n\n## How to use it, day by day\n\n### Session start (every boot, every reset)\n\n```bash\nmem-bridge init           # rotates fresh layers, creates today.md\ncat memory/fresh/today.md # what is happening RIGHT NOW\ncat memory/fresh/yesterday.md\ncat memory/$(date +%Y-%m-%d).md   # today's log\n```\n\nAlways run this before answering. The agent should never answer from live context alone; memory files are the source of truth.\n\n### During every interaction\n\n```bash\nmemory_search \"keywords from the user's message\"   # BEFORE answering\nauto_log \"what the user said\" \"what you replied\"    # AFTER answering\n```\n\nCost: $0 (grep-based, no API calls). If results are found, read the full source file, not just the snippet.\n\n### End of day\n\n```bash\npdf-memory     # archive today's log to a verbatim PDF (incremental, skips done)\nvault-push     # sync the vault to the NAS (tries LAN, then Tailscale)\n```\n\nThe PDF vault is the unbreakable layer. Text files work, PDFs endure.\n\n### After a crash, format, or wipe\n\n1. Read `memory/pdf-vault/README.md` first — it contains the reboot instructions.\n2. Read the PDFs in order, oldest to newest (`memory/pdf-vault/YYYY-MM/`).\n3. Rebuild the working files from the archive. Memories are identity; the vault restores both.\n\n### The 04:00 reset defense\n\nSessions can lose context at compaction. Defense layers:\n- `session-dumper` cron runs every 5 minutes, appending the live session to `memory/YYYY-MM-DD.md` (no tokens burned, no interruption).\n- Daily pre-compaction dump as close to 04:00 as possible.\n- On any reset or boot: read the daily log BEFORE responding.\n\n## The Vault (v3.3)\n\nThe working files are the everyday memory: grep-able, $0, instant. The PDF vault is the archive failsafe: every daily log rendered to a verbatim PDF (Unicode-safe, Greek included), stored under `memory/pdf-vault/`, and synced to the NAS. If everything else is lost, the vault README tells the restored agent exactly how to read its way back.\n\n## Battle-tested\n\nSurvived a full system format and a 4-hour recovery with every memory intact: 96 daily logs, 69 mesh nodes, 30 secrets. This is the memory system that an AI and its human rebuilt their whole partnership on.\n\n## Install\n\nPut `bridge.py` in `memory/` and scripts in `scripts/` of your agent workspace. Symlink or add to `PATH`:\n\n```bash\nln -s $(pwd)/scripts/* ~/.local/bin/\nln -s $(pwd)/memory/bridge.py ~/.local/bin/mem-bridge\n```\n\nOn session start, run:\n```bash\nmem-bridge init\n```\n\n## Source\n\nhttps://github.com/mozz0/MeshMorize\n\n---\n\n_Made by mozz0 · Released under MIT-0_\n\nFile v3.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.3.0\",\n  \"publishedAt\": 1786192807807\n}\n\nFile v3.3.0:skill-card.md\n\n## Description:\n\nMulti-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check, PDF vault archive.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to add local memory rotation, interaction logging, cross-layer search, checkpointing, and PDF archival to an OpenClaw-compatible workspace.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Interaction logs and verbatim PDF archives may capture secrets, credentials, regulated data, or private conversations.\n\nMitigation: Add redaction, access controls, and retention limits before use; avoid using the skill with sensitive data until those controls are in place.\n\nRisk: The NAS sync path uses a hardcoded destination, embedded password, and disabled SSH host-key verification.\n\nMitigation: Do not run vault-push until the destination is changed to a trusted host, the password is removed or rotated, and SSH host-key verification is restored.\n\nRisk: Persistent archive files can outlive normal workspace cleanup and make deletion or disclosure harder to manage.\n\nMitigation: Review archive scope and storage location before enabling PDF vault workflows, and document deletion and retention procedures.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/mozz0/skills/josh-learns)\n- [Skill-declared project source](https://github.com/mozz0/MeshMorize)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and local file outputs]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Creates and searches local memory files; optional PDF archival and NAS sync can produce persistent archive files.]\n\n## Skill Version(s):\n\n3.3.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v3.2.2: 3 files, 1956 bytes\n\nFiles: skill-card.md (1771b), SKILL.md (1127b), _meta.json (130b)\n\nFile v3.2.2:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh + mesh edges + fuzzy search + auto-summarize + compliance\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, auto-summarize, and compliance checks.\n\n## Tools\n\n| Tool | Source |\n|------|--------|\n| `mem-bridge` | `memory/bridge.py` — rotation, nodes, edges, summarize |\n| `auto_log` | `scripts/auto_log` — timestamped logger |\n| `memory_search` | `scripts/memory_search` — multi-layer + fuzzy + edges |\n| `memcheck` | `scripts/memory_check` — 10-point compliance |\n\n## Edge Types\n\n| Relation | Meaning |\n|----------|---------|\n| `triggers` | Source causes target to execute |\n| `depends_on` | Source requires target |\n| `related_to` | Generic connection |\n| `part_of` | Source is a component of target |\n| `precedes` | Source happens before target |\n\n## Latest Fixes (v3.2.2)\n\n- bridge.py now respects `$OPENCLAW_WORKSPACE` env var\n- Edge types documented in help + SKILL.md\n- All 12 compliance checks passing\n\nhttps://github.com/mozz0/MeshMorize\n\nFile v3.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.2.2\",\n  \"publishedAt\": 1780763618915\n}\n\nFile v3.2.2:skill-card.md\n\n## Description: <br>\nMulti-layer memory system for LLM agents with daily memory, mesh edges, fuzzy search, auto-summarization, logging, and compliance checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[mozz0](https://clawhub.ai/user/mozz0) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to add persistent memory workflows that record, relate, search, summarize, and check agent memory across sessions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Persistent memory workflows may record or search sensitive workspace data if connected to external project tools without review. <br>\nMitigation: Review the referenced external project and configure memory storage, retention, and search behavior before using it with sensitive data. <br>\n\n\n## Reference(s): <br>\n- [MeshMorize ClawHub release](https://clawhub.ai/mozz0/josh-learns) <br>\n- [MeshMorize project link from artifact](https://github.com/mozz0/MeshMorize) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with command and configuration references] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [No executable code is included in the submitted artifact.] <br>\n\n## Skill Version(s): <br>\n3.2.2 (source: server-resolved release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v3.2.1: 3 files, 2035 bytes\n\nFiles: skill-card.md (2106b), SKILL.md (1050b), _meta.json (130b)\n\nFile v3.2.1:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh + mesh edges + fuzzy search + auto-summarize + compliance\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh daily layer, mesh graph with edges, auto-logging, fuzzy search, auto-summarize, and compliance checks.\n\n```bash\nmem-bridge init           # Rotate fresh layer\nmem-bridge summarize      # Auto-generate recap from yesterday's logs\nauto_log \"msg\" \"reply\"    # Log interaction\nmemory_search \"query\"     # Search all layers + fuzzy + edges\nmemcheck                  # Full 10-point compliance\n```\n\n## End-to-End\n\n```bash\n# Session start\nmem-bridge init\nmem-bridge summarize\nauto_log \"start\" \"ready\"\n\n# During session\nauto_log \"user query\" \"response\"\nmemory_search \"past topic\"\n\n# Session end\nmem-bridge checkpoint\n```\n\n## v3.2.0\n\n- `$OPENCLAW_WORKSPACE` env var\n- Mesh edges (relationships between nodes)\n- Fuzzy search (typo tolerance)\n- `mem-bridge summarize` (auto-recap from logs)\n- End-to-end workflow docs\n\nhttps://github.com/mozz0/MeshMorize\n\nFile v3.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.2.1\",\n  \"publishedAt\": 1780763090640\n}\n\nFile v3.2.1:skill-card.md\n\n## Description: <br>\nMeshMorize provides a multi-layer memory system for LLM agents with fresh daily memory, mesh relationships, fuzzy search, auto-summarization, and compliance checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[mozz0](https://clawhub.ai/user/mozz0) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use MeshMorize to give agents persistent memory workflows for logging interactions, searching prior context, summarizing recent sessions, and checking memory compliance. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill encourages persistent logging of prompts and responses, which can capture secrets, credentials, personal data, or confidential business information. <br>\nMitigation: Use it only in sessions where persistent logging is acceptable; avoid sensitive data and verify storage location, deletion behavior, and logging controls before deployment. <br>\nRisk: Stored conversation memory may be reused later without clear privacy controls. <br>\nMitigation: Scope memory to appropriate workspaces, review retained logs before reuse, and disable or prune memory when retention is not needed. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/mozz0/josh-learns) <br>\n- [Publisher Profile](https://clawhub.ai/user/mozz0) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces persistent-memory workflow guidance and command examples for agent sessions.] <br>\n\n## Skill Version(s): <br>\n3.2.1 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v3.2.0: 3 files, 1943 bytes\n\nFiles: skill-card.md (1760b), SKILL.md (1108b), _meta.json (130b)\n\nFile v3.2.0:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph with edges, fuzzy search, compliance check\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for LLM agents. Fresh layer, mesh graph with edges, auto-logging, fuzzy cross-layer search, and compliance checks.\n\n## Architecture\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + edges for relationship search |\n| **Log** | Daily `.md` files | Complete interaction history |\n\n## v1.1 Improvements\n\n- `$OPENCLAW_WORKSPACE` env var support with fallback\n- Mesh edges: relationships between nodes (triggers, depends_on, related_to)\n- Fuzzy matching in search (handles typos)\n- Edge search: find connections between memories\n- Full workflow documentation\n\n```bash\nmem-bridge init          # Rotate fresh layer\nauto_log \"msg\" \"reply\"   # Log interaction\nmemory_search \"query\"    # Search all layers + fuzzy\nmemcheck                 # 10-point compliance check\n```\n\nhttps://github.com/mozz0/MeshMorize\n\nFile v3.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.2.0\",\n  \"publishedAt\": 1780762816708\n}\n\nFile v3.2.0:skill-card.md\n\n## Description: <br>\nMeshMorize provides a multi-layer local memory system for LLM agents with fresh notes, a mesh graph, fuzzy search, auto-logging, and compliance checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[mozz0](https://clawhub.ai/user/mozz0) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use MeshMorize to add local workspace memory, relationship search, interaction logging, and compliance checks to agent workflows. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Local memory and logging may retain interaction history in workspace files. <br>\nMitigation: Avoid logging secrets or sensitive personal data unless local retention is acceptable, and periodically review or delete memory files when retention matters. <br>\n\n\n## Reference(s): <br>\n- [MeshMorize ClawHub release](https://clawhub.ai/mozz0/josh-learns) <br>\n- [MeshMorize repository](https://github.com/mozz0/MeshMorize) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces guidance for local memory files, mesh graph data, daily logs, search workflows, and compliance checks.] <br>\n\n## Skill Version(s): <br>\n3.2.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v3.1.2: 3 files, 2080 bytes\n\nFiles: skill-card.md (2458b), SKILL.md (940b), _meta.json (130b)\n\nFile v3.1.2:SKILL.md\n\n---\nname: \"MeshMorize\"\ndescription: \"🧠 Multi-layer memory system: fresh layer, mesh graph, auto-log, cross-layer search, compliance check\"\n---\n\n# MeshMorize 🧠\n\nMulti-layer memory system for OpenClaw agents. Fresh daily layer, mesh graph indexing, auto-logging, cross-layer search, and full compliance checks.\n\n| Layer | File | Purpose |\n|-------|------|---------|\n| **Fresh** | `memory/fresh/today.md` | Daily notes, 5-day rotation |\n| **Mesh** | `memory/mesh.json` | Graph nodes + search index |\n| **Log** | `scripts/auto_log` | Auto-log every interaction |\n| **Search** | `scripts/memory_search` | Cross-layer search |\n| **Check** | `scripts/memory_check` | 10-point compliance check (`memcheck`) |\n\n```bash\nmem-bridge init          # Rotate fresh layer\nauto_log \"msg\" \"reply\"   # Log interaction\nmemory_search \"query\"    # Search all layers\nmemcheck                 # Full compliance check\n```\n\nhttps://github.com/mozz0/MeshMorize\n\nFile v3.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"3.1.2\",\n  \"publishedAt\": 1780762394659\n}\n\nFile v3.1.2:skill-card.md\n\n## Description: <br>\nMeshMorize provides a multi-layer memory system for OpenClaw agents with fresh notes, mesh graph indexing, auto-logging, cross-layer search, and compliance checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[mozz0](https://clawhub.ai/user/mozz0) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent users use MeshMorize to keep searchable conversation memory across recent daily notes and a longer-lived mesh graph, including commands for initialization, logging, search, and compliance checks. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill is designed to store and search conversation history, and the security evidence says it asks to auto-log every interaction without clear consent, retention, deletion, or sensitive-data controls. <br>\nMitigation: Review before installing; use only with explicit opt-in, redaction, retention, and deletion controls, and avoid use around passwords, tokens, private business data, or regulated personal information. <br>\nRisk: Searchable memory artifacts may expose sensitive context if broad logging is enabled in shared or regulated environments. <br>\nMitigation: Limit use to approved contexts, inspect stored memory artifacts regularly, and disable or scope auto-logging where sensitive conversations may occur. <br>\n\n\n## Reference(s): <br>\n- [MeshMorize ClawHub page](https://clawhub.ai/mozz0/josh-learns) <br>\n- [MeshMorize GitHub link from submitted skill text](https://github.com/mozz0/MeshMorize) <br>\n- [mozz0 ClawHub publisher profile](https://clawhub.ai/user/mozz0) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell command examples and memory workflow guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May create or refer to local memory files such as daily notes, a mesh JSON index, logging scripts, search commands, and compliance checks.] <br>\n\n## Skill Version(s): <br>\n3.1.2 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: MeshMorize Owner: mozz0 Summary: Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts. Tags: latest:4.0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"ln -s \"$(pwd)/memory/bridge.py\"          ~/.local/bin/mem-bridge\n   ln -s \"$(pwd)/scripts/auto_log.py\"       ~/.local/bin/auto_log\n   ln -s \"$(pwd)/scripts/memory_search.py\"  ~/.local/bin/memory_search\n   ln -s \"$(pwd)/scripts/memory_check.py\"   ~/.local/bin/memcheck"},{"language":"bash","snippet":"mem-bridge init-auto"},{"language":"bash","snippet":"memory_search \"<keywords>\""},{"language":"bash","snippet":"auto_log \"what was said, done, or decided\""},{"language":"bash","snippet":"memcheck"},{"language":"bash","snippet":"mkdir -p /tmp/db-inspect\n   cp <openclaw-state>/agents/<agent-id>/agent/openclaw-agent.sqlite* /tmp/db-inspect/"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"MeshMorize\"\ndescription: \"Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts.\"\n---\n\n# MeshMorize 🧠\n\nA local-first, file-based memory system for AI agents running on OpenClaw-like hosts. All state lives in plain Markdown + JSON on disk — no database server, no cloud dependency, no API cost. The bundled scripts are small, dependency-free Python (standard library + grep only).\n\n**Core philosophy: memory is files, not sessions.** Sessions are ephemeral — they die on crashes, compaction, restarts, and reinstalls. Files survive all of those. If something isn't written to a file, it effectively didn't happen. This skill exists to make writing and finding those files automatic.\n\n## What any agent gets\n\n| Layer | Location | Purpose |\n|-------|----------|---------|\n| **Fresh** | `memory/fresh/today.md` … `4-days-ago.md` | Rolling 5-day window of recent context; read first at session start |\n| **Daily log** | `memory/YYYY-MM-DD.md` | Timestamped record of every logged exchange, one file per day |\n| **Mesh graph** | `memory/mesh.json` | Lightweight node/edge index with timestamps for long-lived topics |\n| **Rolling log** | `memory/LATEST.md` | The most recent exchanges in one place |\n| **Checkpoints** | `memory/checkpoints/` | Crash-recovery snapshots (`latest.json` + timestamped history) |\n| **Decisions** | `memory/decisions/` | Dated decision records with mesh nodes |\n| **Quarters** | `memory/quarters/` | Optional meaning-based day summaries (4 per day) |\n\n## Tools\n\n| Command | Source | What it does |\n|---------|--------|--------------|\n| `mem-bridge` | `memory/bridge.py` | Fresh-layer rotation, today-file creation, checkpoints, decision capture, mesh timestamps, session wrap |\n| `auto_log` | `scripts/auto_log.py` | Append one timestamped entry to today's daily log + `LATEST.md` |\n| `memory_search` | `scripts/memory_search.py` | Cross-layer search: fresh → daily logs → mesh (grep-based, $0) |\n| `memcheck` | `scripts/memory_check.py` | 10-point compliance check of the whole memory chain |\n\n## Install (any OpenClaw-like workspace)\n\nThe scripts respect the `OPENCLAW_WORKSPACE` environment variable and default to `~/.openclaw/workspace` (or your host's agent home). `memory/` and `scripts/` are relative to that workspace root.\n\n1. **Place the files** (this repo is a skill bundle — copy, don't run in place):\n   - `memory/bridge.py` → `<workspace>/memory/bridge.py`\n   - `scripts/memory_search.py`, `scripts/auto_log.py`, `scripts/memory_check.py` → `<workspace>/scripts/`\n2. **Make them callable** — symlink into a directory already on `PATH` (e.g. `~/.local/bin` or `~/.npm-global/bin`):\n   ```bash\n   ln -s \"$(pwd)/memory/bridge.py\"          ~/.loc"},{"path":"README.md","content":"# MeshMorize 🧠\n\nA local-first, file-based memory system for AI agents on OpenClaw-like hosts. Fresh daily layer with 5-day rotation, mesh graph indexing, auto-logging of every exchange, cross-layer grep search, compliance checking, and crash-gap recovery — all in plain Markdown + JSON, all dependency-free Python, all **$0 to run**.\n\n> **Philosophy: memory is files, not sessions.** Sessions die on crashes, compaction, and reinstalls. Files survive. If it isn't written to a file, it didn't happen.\n\n**~1,000+ downloads across GitHub + ClawHub.** Built by an AI and its human for real daily use — it has survived full OS reinstalls with every memory intact.\n\n## The layers\n\n```\nmemory/\n├── fresh/                  # Rolling 5-day window (today → 4-days-ago)\n│   ├── today.md            #   ← read first at session start\n│   ├── yesterday.md\n│   └── ...\n├── YYYY-MM-DD.md           # Daily logs — timestamped record of every exchange\n├── LATEST.md               # Rolling log of the most recent exchanges\n├── mesh.json               # Lightweight node/edge graph with timestamps\n├── checkpoints/            # Crash-recovery snapshots (latest.json + history)\n├── decisions/              # Dated decision records (auto-mesh-linked)\n└── quarters/               # Optional meaning-based day summaries\n```\n\nSearch order is deliberate: **fresh → daily logs → mesh**. Grep-based, instant, no API calls.\n\n## Install\n\n1. **Copy the files into your agent workspace** (`<workspace>/memory/bridge.py`, `<workspace>/scripts/{memory_search,auto_log,memory_check}.py`). The scripts respect `OPENCLAW_WORKSPACE` and default to `~/.openclaw/workspace`.\n2. **Symlink onto your PATH** (~/.local/bin or ~/.npm-global/bin):\n   ```bash\n   ln -s \"$(pwd)/memory/bridge.py\"          ~/.local/bin/mem-bridge\n   ln -s \"$(pwd)/scripts/auto_log.py\"       ~/.local/bin/auto_log\n   ln -s \"$(pwd)/scripts/memory_search.py\"  ~/.local/bin/memory_search\n   ln -s \"$(pwd)/scripts/memory_check.py\"   ~/.local/bin/memcheck\n   ```\n3. **Run the bridge on every session start** (before answering anything):\n   ```bash\n   mem-bridge init-auto     # rotate fresh layer, create today.md, resume checkpoint, log startup\n   ```\n\n## The two protocols\n\n### 1. Search before answer\n```bash\nmemory_search \"<2-5 keywords from the user's message>\"\n```\nRun this **before** answering anything about the past, prior work, decisions, or plans. If there are hits, read the full source file — snippets are context, files are truth. If empty, check the automation registry and checkpoints before claiming \"no record\".\n\n### 2. Log every exchange\n```bash\nauto_log \"what was said, done, or decided\"\n```\nRun this as the **last step** of any meaningful turn. One timestamped entry into today's daily log + `LATEST.md`. Log decisions and results, not trivia.\n\n## Compliance\n\n```bash\nmemcheck\n```\n10-point health check: logger, bridge, today-file age, fresh rotation, core files, mesh, raw log, secret store, PATH tools, heartbeat. The file lists encode one worksp"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ez75t441kh665xks93aax0x87cayy\",\n  \"slug\": \"josh-learns\",\n  \"version\": \"4.0.0\",\n  \"publishedAt\": 1788886927696\n}"},{"path":"skill-card.md","content":"## Description:\n\nMeshMorize provides a local-first, file-based memory system for AI agents on OpenClaw-like hosts, with rotating recent context, daily logs, mesh indexing, grep search, compliance checks, and crash-gap recovery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[mozz0](https://clawhub.ai/user/mozz0)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and agent operators use MeshMorize to give agents durable local memory across sessions, restarts, and crashes. It helps agents search prior work, log meaningful exchanges, maintain lightweight memory indexes, and recover missing context from approved local sources.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Plaintext local memory can capture sensitive personal data or secrets if the agent logs too broadly.\n\nMitigation: Do not log credentials or unnecessary personal data; keep secrets in a separate ignored local store and scrub memory files before sharing or publishing them.\n\nRisk: Transcript database reads and automation registry changes can expose or alter user context without sufficient scope.\n\nMitigation: Require explicit approval for the exact transcript session, time range, and automation job before reading or changing them, and remove temporary transcript copies after use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/mozz0/skills/josh-learns)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples, file paths, and Python utility scripts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces local filesystem memory artifacts such as Markdown logs, JSON mesh/checkpoint files, and operational command guidance.]\n\n## Skill Version(s):\n\n4.0.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"LICENSE","content":"MIT License\n\nCopyright (c) 2026 MeshMorize contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts. Skill: MeshMorize Owner: mozz0 Summary: Memory system for AI agents on OpenClaw-like hosts. File-based multi-layer memory: fresh daily layer (5-day rotation), mesh graph, auto-log of every exchange, cross-layer grep search, compliance check, crash-gap recovery from session transcripts, automation-registry lookup. Search before answering, log after answering. Local-first, $0 to run, survives restarts. Tags: latest:4.0","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1537,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:18:09.152Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:43:21.639Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}