diff --git a/CLAUDE.md b/CLAUDE.md index 82b72e5..220e3fa 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -141,7 +141,7 @@ When a PR merges, `action.py` runs this sequence: If true → exit 0, log "low-signal PR skipped" 6. Call `extract(title, body, review_comments)` — Instructor + Claude Sonnet 7. If `contains_decision` is False → exit 0 silently -7b. If `contains_decision` is True but `confidence < 0.65` → discard silently +7b. If `contains_decision` is True but `confidence < 0.40` → discard silently 8. If `contains_decision` is True: - Scan PR body + review comments for `ADR-NNN` patterns; glob matching knowledge records into a `related` list diff --git a/README.md b/README.md index db02afe..284a059 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,14 @@ # Memex -Memex extracts and indexes the institutional knowledge buried in your GitHub pull requests, review threads, and ADRs — automatically, without changing how your team works. +[![PyPI](https://img.shields.io/pypi/v/memex-oss)](https://pypi.org/project/memex-oss/) +[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue)](https://pypi.org/project/memex-oss/) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) -Engineers don't write anything new. Memex hooks into the artifacts that already exist and makes them searchable. +**[trymemex.dev](https://trymemex.dev)** · [PyPI](https://pypi.org/project/memex-oss/) + +Most architectural decisions are never written down. They live in a three-minute hallway conversation, a Slack thread that gets deleted, or a pull request where every review is just "LGTM". + +Memex captures decisions at the moment they're made — extracting structured rationale from the GitHub artifacts that already exist (PRs, review threads, ADRs) without asking engineers to change how they work. ```bash $ memex query "why did we move off MongoDB" @@ -19,6 +25,10 @@ Results for: why did we move off MongoDB #2 ... ``` +Or, surfaced automatically by an AI coding agent before it suggests an architecture change: + +![Cursor using memex_query to surface a past decision before suggesting an architecture change](memex_cursor_landing.html.png) + --- ## How it works diff --git a/memex/schema.py b/memex/schema.py index 7edc227..aa745c5 100644 --- a/memex/schema.py +++ b/memex/schema.py @@ -6,7 +6,7 @@ class ConfidenceLevel(str, Enum): high = "high" # >= 0.80 — publish medium = "medium" # 0.65–0.80 — publish with flag - low = "low" # < 0.65 — discard + low = "low" # < 0.65 — publish with ⚠️ flag class KnowledgeRecord(BaseModel): diff --git a/memex_cursor_landing.html.png b/memex_cursor_landing.html.png new file mode 100644 index 0000000..a3586d4 Binary files /dev/null and b/memex_cursor_landing.html.png differ diff --git a/pyproject.toml b/pyproject.toml index 2c97bc1..9266f42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,12 +4,12 @@ build-backend = "hatchling.build" [project] name = "memex-oss" -version = "0.3.0" +version = "0.3.1" description = "Institutional knowledge extraction for engineering teams" readme = "README.md" license = { text = "AGPL-3.0-or-later" } authors = [{ name = "Memex Contributors" }] -keywords = ["knowledge-management", "github-actions", "adr", "engineering"] +keywords = ["knowledge-management", "github-actions", "adr", "engineering", "llm", "mcp", "developer-tools", "institutional-knowledge"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", @@ -34,6 +34,12 @@ dev = [ "pytest-mock>=3.14.0", ] +[project.urls] +Homepage = "https://trymemex.dev" +Repository = "https://github.com/Jonasb8/memex" +"Bug Tracker" = "https://github.com/Jonasb8/memex/issues" +Changelog = "https://github.com/Jonasb8/memex/releases" + [project.scripts] memex = "memex.cli:cli"