{
  "markdown": "<div align=\"center\">\r\n\r\n```\r\n ███████╗██╗   ██╗███╗   ██╗ █████╗ ██████╗ ████████╗██╗ ██████╗\r\n ██╔════╝╚██╗ ██╔╝████╗  ██║██╔══██╗██╔══██╗╚══██╔══╝██║██╔════╝\r\n ███████╗ ╚████╔╝ ██╔██╗ ██║███████║██████╔╝   ██║   ██║██║\r\n ╚════██║  ╚██╔╝  ██║╚██╗██║██╔══██║██╔═══╝    ██║   ██║██║\r\n ███████║   ██║   ██║ ╚████║██║  ██║██║        ██║   ██║╚██████╗\r\n ╚══════╝   ╚═╝   ╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝        ╚═╝   ╚═╝ ╚═════╝\r\n```\r\n\r\n### Persistent memory for Claude Code\r\n\r\n**Claude forgets everything between sessions. Synaptic fixes that.**\r\n\r\n[![Version](https://img.shields.io/badge/version-1.7.2-blue)](https://github.com/HYPERLYNQ/synaptic/releases)\r\n[![npm](https://img.shields.io/npm/v/@hyperlynq/synaptic)](https://www.npmjs.com/package/@hyperlynq/synaptic)\r\n[![Tests](https://img.shields.io/badge/tests-84%20passing-brightgreen)](https://github.com/HYPERLYNQ/synaptic)\r\n[![Node](https://img.shields.io/badge/node-22%2B-339933)](https://nodejs.org)\r\n[![License](https://img.shields.io/badge/license-source--available-orange)](LICENSE)\r\n\r\n[Getting Started](#getting-started) · [Features](#features) · [How It Works](#how-it-works) · [Enterprise](#enterprise)\r\n\r\n</div>\r\n\r\n<br>\r\n\r\nEvery time you start a new Claude Code session, Claude doesn't remember what you worked on yesterday, what decisions you made, or what bugs you hit.\r\n\r\nSynaptic gives Claude a **persistent memory** that carries across sessions. Decisions, insights, bug fixes, project patterns — saved locally and surfaced automatically when Claude starts up.\r\n\r\nNo cloud dependencies. No API keys. Everything stays on your machine — with optional GitHub sync across your own devices.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## Why Not Just Use Claude's Built-In Memory?\r\n\r\nClaude Code already has a few memory features. Here's how Synaptic is different.\r\n\r\n<br>\r\n\r\n### CLAUDE.md\r\n\r\n`CLAUDE.md` is a file you write by hand with project instructions. Claude reads it at the start of each session. It's great for static rules like \"use tabs\" or \"run pytest.\"\r\n\r\nBut it doesn't capture anything that happens *during* a session — the bugs you found, the decisions you made, the dead ends you explored. When you close the terminal, all of that is gone.\r\n\r\n<br>\r\n\r\n### Auto-Compacting\r\n\r\nWhen Claude runs out of context window, it compresses the conversation to make room. This loses detail and nuance.\r\n\r\nSynaptic's **PreCompact hook** runs *before* compression happens. It saves the important parts to permanent storage. After compacting, Claude still has access to what mattered.\r\n\r\n<br>\r\n\r\n### Auto-Memory\r\n\r\nClaude's auto-memory (`~/.claude/memory/`) saves short notes to files. But there's no real search, no semantic understanding, no awareness of which notes are related, and no way for old notes to expire naturally. It's a flat list that grows forever.\r\n\r\n<br>\r\n\r\n### The Comparison\r\n\r\n| | CLAUDE.md | Auto Memory | **Synaptic** |\r\n|:---|:---|:---|:---|\r\n| What it stores | Static instructions | Short notes | Typed, tagged, tiered entries |\r\n| Search | None | Filename only | Multi-pass fuzzy + semantic similarity |\r\n| Cross-session | Only what you manually write | Basic notes | Handoffs, chains, failure history |\r\n| Git awareness | None | None | Commits, co-changes, codebase DNA |\r\n| Memory cleanup | Manual | Grows forever | Auto-decay + smart dedup |\r\n| Pattern detection | None | None | Tracks recurring failures |\r\n| Auto-capture | None | None | Semantic anchors capture preferences, decisions, debugging patterns |\r\n| Fact extraction | None | None | Structural parsing + LLM synthesis of tool output |\r\n| Rule enforcement | None | None | Hard (commit-msg hook) + soft (violation detection) |\r\n| Transcript scanning | None | None | Passively captures from conversation history |\r\n| Predictive context | None | None | Surfaces relevant history at session start |\r\n| Multi-machine sync | None | None | GitHub-based sync across devices |\r\n\r\n<br>\r\n\r\n**Synaptic doesn't replace `CLAUDE.md`** — it complements it. Use `CLAUDE.md` for static project instructions. Use Synaptic for the living, evolving knowledge that builds up as you work.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## Getting Started\r\n\r\n### What You Need\r\n\r\n- **Node.js 22+** — uses Node's built-in SQLite\r\n- **Claude Code** — Anthropic's CLI tool\r\n\r\n<br>\r\n\r\n### Install\r\n\r\nSynaptic ships as a Claude Code plugin. The recommended install is one command:\r\n\r\n```bash\r\n/plugin marketplace add HYPERLYNQ/synaptic\r\n/plugin install synaptic@synaptic\r\n```\r\n\r\nThat's it. Restart Claude Code and Synaptic is ready. The plugin handles everything automatically:\r\n\r\n- **Auto-installs** the synaptic npm package into Claude Code's plugin data directory on first session start (one-time, ~20 seconds — see \"First-run cost\" below)\r\n- **Auto-prunes** unused onnxruntime binaries, keeping the install at ~239 MB instead of 732 MB\r\n- **Auto-wires** the MCP server and lifecycle hooks via `.claude-plugin/plugin.json`\r\n- **Auto-updates** when you run `/plugin marketplace update synaptic` after a new release\r\n\r\nNo separate `npm install -g` step. No `synaptic init` to remember. No hand-editing `settings.json`.\r\n\r\n<br>\r\n\r\n<details>\r\n<summary><strong>First-run cost</strong></summary>\r\n\r\n<br>\r\n\r\nThe first session after install triggers a one-time `npm install` into `${CLAUDE_PLUGIN_DATA}/node_modules`:\r\n\r\n| Phase | Time |\r\n|:------|:-----|\r\n| Plugin install (clone + cache copy) | <1 second |\r\n| First-session npm install (`@hyperlynq/synaptic` + deps + onnxruntime prune) | ~15-30 seconds |\r\n| Subsequent session starts | instant |\r\n\r\nThe install runs once per `plugin.json.version`. Bumping the version on a `/plugin marketplace update` triggers a re-install; otherwise the cached install persists across sessions. The cached install lives in `~/.claude/plugins/data/synaptic-<marketplace>/` and survives plugin updates.\r\n\r\nIf `npm` is not on `PATH`, the launcher will print a clear error in Claude Code's plugin errors panel.\r\n\r\n</details>\r\n\r\n<br>\r\n\r\n<details>\r\n<summary><strong>Install from npm directly (legacy / non-Claude Code clients)</strong></summary>\r\n\r\n<br>\r\n\r\nIf you're using synaptic outside Claude Code (e.g. as an MCP server in Claude desktop, VS Code, or another MCP client), or you want a globally installed `synaptic` CLI:\r\n\r\n```bash\r\nnpm install -g @hyperlynq/synaptic\r\nsynaptic init\r\n```\r\n\r\n`synaptic init` registers the MCP server in `~/.claude/settings.json` so non-plugin clients can find it, and sets up project dirs and optional sync. It does **not** install hooks — those are managed by the plugin system in v1.3.0+.\r\n\r\nIf you're on Claude Code, prefer the plugin install above. The plugin path manages hooks, updates, and cross-platform native binaries automatically.\r\n\r\n</details>\r\n\r\n<br>\r\n\r\n<details>\r\n<summary><strong>Cross-platform notes</strong></summary>\r\n\r\n<br>\r\n\r\nSynaptic depends on native modules (`sqlite-vec`, `sharp`) that are platform-specific. The plugin install handles this automatically because `npm install` resolves the right binaries for the current Node runtime.\r\n\r\nIf you use synaptic in **both Windows and WSL** on the same machine, you need separate installs for each — the Windows-compiled native modules won't run under Linux and vice versa. The plugin path handles this transparently because each platform's plugin data directory gets its own install. The npm-global install path requires running `npm install -g` once per platform.\r\n\r\n</details>\r\n\r\n<br>\r\n\r\n<details>\r\n<summary><strong>Install from source</strong></summary>\r\n\r\n<br>\r\n\r\n```bash\r\ngit clone https://github.com/HYPERLYNQ/synaptic.git\r\ncd synaptic\r\nnpm install\r\nnpm run build\r\n# Use the local clone as a directory-based plugin marketplace:\r\n/plugin marketplace add /path/to/synaptic\r\n/plugin install synaptic@synaptic\r\n```\r\n\r\n</details>\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## What's New\r\n\r\n### v1.5.0 — Automatic capture, smart recall (2026-04-16)\r\n\r\nThe Stop hook no longer writes content-less aggregation handoffs. PostToolUse and UserPromptSubmit now save a first-class `checkpoint` type, pinned, with a derived name. `/load <name>` injects a saved checkpoint (plus its references) into the current conversation. SessionStart ranks candidates by content quality, project match, pinned, and recency — not blind recency. A session without a meaningful commit/plan/spec/checkpoint writes no handoff at all.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## Features\r\n\r\n### 15 Tools for Claude\r\n\r\n<table>\r\n<tr>\r\n<td width=\"50%\">\r\n\r\n**Memory**\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `context_save` | Save decisions, bugs, insights |\r\n| `context_search` | Keyword + semantic search |\r\n| `context_list` | Browse by date or type |\r\n| `context_status` | Storage stats |\r\n\r\n</td>\r\n<td width=\"50%\">\r\n\r\n**Organization**\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `context_archive` | Hide old entries |\r\n| `context_save_rule` | Create permanent rules |\r\n| `context_delete_rule` | Remove rules |\r\n| `context_list_rules` | List active rules |\r\n\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n\r\n**Git Intelligence**\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `context_git_index` | Index commits into memory |\r\n| `context_cochanges` | Files that change together |\r\n| `context_dna` | Profile your codebase |\r\n\r\n</td>\r\n<td>\r\n\r\n**Threads & Sessions**\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `context_session` | View session history |\r\n| `context_chain` | Trace decision threads |\r\n| `context_load` | Load a saved checkpoint *(v1.5.0)* |\r\n| `context_resolve_pattern` | Dismiss recurring alerts |\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<br>\r\n\r\n### 3 Slash Commands\r\n\r\n| Command | Purpose |\r\n|:--------|:--------|\r\n| `/save-checkpoint <name>` | Save a named, pinned save-point of the current session |\r\n| `/list-checkpoints` | List recent checkpoints for the current project |\r\n| `/load-checkpoint <name>` | Inject a saved checkpoint + its references into the conversation |\r\n\r\n<br>\r\n\r\n### Intelligent Search\r\n\r\nEvery entry gets a 384-dimensional embedding generated **locally** using a Hugging Face model.\r\n\r\nSearch uses **multi-pass concept fusion** — queries are broken into individual concepts, each expanded with edit-distance-1 fuzzy deletions for typo tolerance. Multiple BM25 passes per concept are scored by how many concepts each entry matches, then fused with semantic vector similarity via Reciprocal Rank Fusion (RRF).\r\n\r\nThis means typos like \"fevr project\" still find \"fever\" entries. Searching for \"email provider\" finds entries about \"Cloudflare Email Routing\" even if those exact words were never used. Porter stemming is built into the FTS5 index for morphological matching.\r\n\r\nNothing is sent to the internet. Ever.\r\n\r\n<br>\r\n\r\n### Codebase DNA\r\n\r\nOne command analyzes your git history and builds a profile:\r\n\r\n```\r\nCodebase DNA (myapp, 100 commits analyzed):\r\nHotspots: sqlite.ts (45%), session-start.ts (30%)\r\nLayers: tools/ (35%), storage/ (30%), hooks/ (25%), cli/ (10%)\r\nPatterns: 60% feat, 25% fix, 15% chore. Avg 3.2 files/commit.\r\nClusters: [sqlite.ts + embedder.ts + server.ts]\r\n```\r\n\r\n- **Hotspots** — Your most-changed files\r\n- **Layers** — Where work concentrates\r\n- **Patterns** — Your commit habits\r\n- **Clusters** — Files that always change together\r\n\r\nSaved permanently so Claude can reference it during architectural decisions.\r\n\r\n<br>\r\n\r\n### Pre-Commit Guardian\r\n\r\nRuns your lint, typecheck, and test scripts before each commit.\r\n\r\n**When something fails** — the error is saved with file tags and a chain ID. Claude knows about it next session.\r\n\r\n**When everything passes** — if those files recently failed, a resolution entry is saved. Over time, this builds traceable **failure → fix** narratives.\r\n\r\n<br>\r\n\r\n### Decision Chains\r\n\r\nTrack how decisions evolve:\r\n\r\n```\r\nDecision: \"Use SQLite for persistence\"\r\n    ↓\r\nIssue: \"SQLite WAL mode conflicts with WSL file locking\"\r\n    ↓\r\nDecision: \"Switch to journal_mode=DELETE for WSL compatibility\"\r\n```\r\n\r\nEvery entry in a chain shares a tag. Pull up the full story anytime with `context_chain`.\r\n\r\n<br>\r\n\r\n### Rules\r\n\r\nPermanent instructions injected every session. Tell Claude how to behave, forever:\r\n\r\n```\r\ncontext_save_rule(\r\n  label: \"preserve-bug-fixes\",\r\n  content: \"Bug fixes and debugging techniques should be saved\r\n    as longterm entries. They have cross-project value and\r\n    should never auto-decay.\"\r\n)\r\n```\r\n\r\nMore examples: `\"never auto-commit\"` · `\"use bun instead of npm\"` · `\"always write tests first\"`\r\n\r\n<br>\r\n\r\n### Rule Enforcement\r\n\r\nRules aren't just suggestions — Synaptic enforces them at multiple levels:\r\n\r\n**Hard enforcement** — A `commit-msg` git hook extracts forbidden patterns from your rules (quoted strings, negative directives like \"never add X\") and blocks commits that contain violations. The commit is rejected with a clear error showing which rule was broken.\r\n\r\n**Soft enforcement** — The stop hook scans the conversation transcript for `git commit` tool calls and checks their messages against rules. Violations are saved as pinned issues.\r\n\r\n**Violation surfacing** — At session start, recent violations are shown as warnings above the rules section. Claude sees what it got wrong recently and is reminded to be extra careful.\r\n\r\n```\r\n⚠ RECENT RULE VIOLATIONS — you broke these rules recently, be extra careful:\r\n- Rule \"no-co-author\": commit message contained \"Co-Authored-By\" (today)\r\n```\r\n\r\n<br>\r\n\r\n### Checkpoints *(v1.5.0)*\r\n\r\nA named, pinnable save-point of the session state. Unlike handoffs (which are session-end summaries) and progress entries (which are status snapshots), checkpoints are **addressable save files**: give them a name, load them back by name later.\r\n\r\n**How they get created:**\r\n\r\n- **Explicit** — `/save-checkpoint <name>` mid-session, or say something like \"save progress\" and Synaptic's `UserPromptSubmit` hook matches the intent\r\n- **Automatic on commit** — a `PostToolUse` hook catches `git commit` and saves a checkpoint named after the commit subject slug (e.g. `feat-phase-5-ui-components`), tagged with the sha for dedupe\r\n- **Automatic on plan/spec writes** — writes to `docs/superpowers/plans/*.md` or `docs/superpowers/specs/*.md` also auto-checkpoint\r\n\r\nEvery checkpoint records its `projectRoot` (absolute path of the git toplevel at save time), enabling project-aware recall.\r\n\r\n**How to load one back:**\r\n\r\n```\r\n/load-checkpoint <name>\r\n```\r\n\r\nThis calls the `context_load` MCP tool, which returns the checkpoint's narrative body plus any referenced entries (the cluster of insights/decisions from the same session). Claude injects the bundle into the current conversation. `/list-checkpoints` lists recent ones scoped to the current project.\r\n\r\n**Smart SessionStart recall** — the \"Recent Handoff\" panel at session start now ranks handoffs + checkpoints together by:\r\n\r\n```\r\n0.35 * length    +    0.35 * project-match    +    0.15 * pinned    +    0.15 * recency\r\n```\r\n\r\nContent-length caps at 500 chars, project-match is 1.0 for `projectRoot` equality or 0.3 for tag overlap, recency uses a 3-day exponential half-life. Entries shorter than 100 chars are filtered before ranking — content-less aggregation handoffs can't crowd out real narrative ones anymore.\r\n\r\n**Stop hook gate** — sessions that had no meaningful events (no commit, no checkpoint, no decision, no plan/spec write) don't produce a handoff at all. No more empty summaries polluting the recall panel.\r\n\r\n<br>\r\n\r\n### Memory Tiers\r\n\r\nNot everything lasts forever. Synaptic manages it for you:\r\n\r\n| Tier | Lifespan | Best For |\r\n|:-----|:---------|:---------|\r\n| **Ephemeral** | 7-21 days | Progress updates, handoffs |\r\n| **Working** | 21-90 days | Decisions, bugs, insights |\r\n| **Longterm** | Forever | Rules, references, conventions |\r\n\r\nEntries that get searched often survive longer automatically. Unused ephemeral entries decay after 7 days; frequently accessed ones last up to 21. Working entries idle for 21-90 days demote to ephemeral.\r\n\r\n<br>\r\n\r\n### Proactive Intelligence\r\n\r\nSynaptic doesn't just store what Claude explicitly saves — it **captures what Claude misses**.\r\n\r\n**Smart Auto-Recall** — At session start, Synaptic uses signal-based detection to decide whether to search your memory. When your message references a known project, implies continuity (\"continue\", \"last time\", \"we were\"), or asks about past decisions, it searches automatically. Generic standalone questions skip the search entirely. No wasted calls, no missed context.\r\n\r\n**Semantic Capture** — Every message in the conversation is embedded and classified against 6 semantic anchors (rules, preferences, recommendations, corrections, standards, debugging). Regex signal detection provides a confidence boost. This means natural language like \"keep design consistent,\" \"that looks terrible,\" or \"I recommend Cloudflare\" is captured automatically — no template matching required.\r\n\r\n**Directive Detection** — User messages that express rules or standards (\"always use tabs,\" \"never auto-commit\") are automatically flagged as pending rule proposals when both semantic anchors and signal words agree. Deduplicated against existing rules.\r\n\r\n**Debugging Patterns** — Trial-and-error sequences (errors followed by resolutions) are detected and saved as longterm insights. When Claude tries something that fails before finding the fix, the entire pattern is preserved so the same mistakes aren't repeated across sessions.\r\n\r\n**Predicted Focus** — At session start, Synaptic analyzes your current git branch, uncommitted files, and last session's handoff to predict what you're about to work on. It surfaces the 2-3 most relevant past entries automatically.\r\n\r\n**Consolidation Engine** — Duplicate entries about the same topic are automatically merged during maintenance. The highest-access entry survives with merged tags; the rest are archived. Keeps your memory clean without losing information.\r\n\r\n**Smart Dedup** — A two-phase duplicate detection system runs during maintenance and before sync. Phase 1 detects subset entries (if entry A's content is fully contained within entry B, A is archived). Phase 2 uses cosine similarity at a conservative 0.90 threshold to find near-duplicates. The longer, more complete entry always survives, with the highest access count and earliest date preserved across merged entries. Pinned entries and rules are always protected.\r\n\r\n**Project-Grouped Handoffs** — Session-end handoffs are organized by project, each with entry type counts, up to 8 learnings (300 char summaries), and pending/TODO items. Important entries get their access counts incremented, making them survive longer in the decay system.\r\n\r\n<br>\r\n\r\n### Hybrid Fact Extraction\r\n\r\nThe transcript scanner can't reason about raw tool output — database query results, error traces, CLI output. Synaptic solves this with a **3-layer extraction pipeline** that runs automatically at the end of every session:\r\n\r\n**Layer 1: Structural Parsing** — Pattern-matches known output shapes from tool results with zero dependencies. Detects Python dicts (model fields), SQL table schemas, AttributeError/KeyError messages, route/auth patterns, environment variables, and Docker commands. Runs instantly on every session.\r\n\r\n**Layer 2: Semantic Classification** — The existing anchor template system with dedicated `discovery` and `credentials` categories that catch schema revelations and credential references in conversation.\r\n\r\n**Layer 3: LLM Synthesis** — Sends Layer 1 snippets to Claude Haiku for intelligent fact extraction. Produces structured facts categorized as `schema`, `credentials`, `route`, `config`, `architecture`, or `behavior`. Saved as longterm reference entries with vector deduplication.\r\n\r\nFacts like *\"User model has `name` not `username`\"* or *\"seed user is demo@example.com\"* that would otherwise be lost between sessions are now captured automatically.\r\n\r\n**Security hardened:**\r\n- Credential values are redacted before leaving your machine (env vars, Docker `-e` flags, Dockerfile `ENV`/`ARG` instructions, Python dict values)\r\n- LLM prompt explicitly instructs never to include actual credential values\r\n- Tool output is wrapped in XML delimiters with content escaping to mitigate prompt injection\r\n- OAuth tokens use proper `Authorization: Bearer` headers\r\n\r\n**Zero configuration** — uses your existing Claude Code subscription (OAuth token from `~/.claude/.credentials.json`). Falls back gracefully if no token is available. Costs ~$0.001 per session via Haiku.\r\n\r\n<br>\r\n\r\n### Watch Mode\r\n\r\nA background watcher observes your `.git/` directory for branch switches and new commits. Changes are auto-indexed after a 2-second debounce. Starts and stops with the MCP server — nothing extra to manage.\r\n\r\n<br>\r\n\r\n### Cleanup CLI\r\n\r\nRun smart dedup and duplicate purging on demand:\r\n\r\n```bash\r\nsynaptic cleanup                        # Conservative mode — 0.90 similarity threshold\r\nsynaptic cleanup --dry-run              # Preview what would be merged (no changes)\r\nsynaptic cleanup --aggressive           # Lower thresholds, purge empty handoffs\r\nsynaptic cleanup --purge-pending-dupes  # Archive duplicate pending rule proposals\r\n```\r\n\r\nThe `--aggressive` flag uses type-specific thresholds (insight: 0.85, decision: 0.92), purges empty handoff entries, and reduces the minimum age filter. `--purge-pending-dupes` groups pending rules by label and content hash, keeping only the newest entry per group. The FTS5 search index is automatically rebuilt after any changes.\r\n\r\n<br>\r\n\r\n### Cross-Machine Sync\r\n\r\nUse Synaptic on multiple machines? Sync is offered automatically during install. You can also manage it manually:\r\n\r\n```bash\r\nsynaptic sync init          # One-time setup — creates private repo, generates machine ID\r\nsynaptic sync now           # Runs maintenance + push & pull\r\nsynaptic sync status        # Show machines, last sync times\r\n```\r\n\r\nEach machine writes to its own append-only JSONL file — no merge conflicts. Entry IDs are globally unique, so dedup is automatic. Embeddings are regenerated locally on each machine.\r\n\r\nSync also runs automatically:\r\n- **Session start** — pulls new entries from other machines\r\n- **Session end** — pushes your new entries\r\n- **Background** — push/pull every 2 minutes while the MCP server is running\r\n\r\nRequires the `gh` CLI (already installed for most developers). All data flows through your own private GitHub repo — nothing touches third-party servers.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## How It Works\r\n\r\nSynaptic runs as an **MCP server** — the standard way to extend Claude with new capabilities.\r\n\r\nFive hooks handle the lifecycle automatically:\r\n\r\n```\r\n┌──────────────────────────────────────────────────────────────┐\r\n│                                                              │\r\n│   START ────→  Smart auto-recall, rules, violation           │\r\n│                warnings, predicted focus, recent context      │\r\n│                                                              │\r\n│   PROMPT ───→  Save-intent detection on every user turn      │\r\n│                (\"save progress\", \"/save-checkpoint [name]\")   │\r\n│                Explicit checkpoints pinned for later recall   │\r\n│                                                              │\r\n│   TOOL USE ─→  Auto-save on significant artifacts:           │\r\n│                successful git commits, plan file writes       │\r\n│                Silent — handoffs accumulate in background     │\r\n│                                                              │\r\n│   COMPRESS ─→  Preserves important context before            │\r\n│                conversation is compressed                     │\r\n│                                                              │\r\n│   END ──────→  Semantic transcript scan                      │\r\n│                Hybrid extraction (structural → LLM)          │\r\n│                Directive detection, debugging patterns        │\r\n│                Handoff summary, rule violation checks         │\r\n│                                                              │\r\n└──────────────────────────────────────────────────────────────┘\r\n```\r\n\r\nData is stored in SQLite with full-text search and vector similarity search. All local.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## Enterprise\r\n\r\n<table>\r\n<tr>\r\n<td width=\"50%\">\r\n\r\n### Personal\r\n**Free — always**\r\n\r\n- All 14 tools\r\n- Unlimited entries\r\n- Local-only storage\r\n- Full search\r\n- Git intelligence\r\n- Pre-commit guardian\r\n- Cross-machine sync via GitHub\r\n\r\n</td>\r\n<td width=\"50%\">\r\n\r\n### Team & Enterprise\r\n**Coming soon**\r\n\r\n- Shared context across team members\r\n- Team rules and conventions\r\n- Analytics dashboard\r\n- Priority support\r\n- Custom integrations\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<br>\r\n\r\nInterested in Synaptic for your team? **[Get in touch →](mailto:hyperlynq@gmail.com)**\r\n\r\n<br>\r\n\r\n---\r\n\r\n<br>\r\n\r\n## Development\r\n\r\n```bash\r\nnpm run build            # Compile TypeScript\r\nnpm test                 # Run vitest unit tests (28)\r\nnpm run smoke-test       # Build + run core tests (175)\r\nnpm run test:search      # Search expansion + multi-pass tests (53)\r\nnpm run test:cleanup     # Smart dedup + cleanup tests (17)\r\nnpm run test:all         # Build + run all 273 tests (vitest + smoke + search + cleanup)\r\n```\r\n\r\n<br>\r\n\r\n## License\r\n\r\nCopyright (c) 2026 HYPERLYNQ. All rights reserved.\r\n\r\nSynaptic is **source-available**. You can use it freely for personal and internal purposes. You may not copy, modify, redistribute, or create derivative works from the source code. See [LICENSE](LICENSE) for details.\r\n\r\nFor commercial licensing, contact **[hyperlynq@gmail.com](mailto:hyperlynq@gmail.com)**.\r\n\r\n<br>\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Built by [HYPERLYNQ](https://github.com/HYPERLYNQ)**\r\n\r\n</div>\r\n",
  "bytes": 25559,
  "sha": "d7b8cdb83ca08730966dd56bf4e5da422d2d1fe09cfdc5319031771ac5ecccbb",
  "repo_slug": "hyperlynq/synaptic",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_hyperlynq_synaptic_synaptic_8c24d64c/readme"
}