{"slug": "show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks", "title": "Show HN: Patina, an AI that learns your judgment, not just your tasks", "summary": "Patina, a new AI tool that learns a user's judgment and priorities over time rather than just completing tasks, launched today. The system builds a persistent belief model from Slack exports and other data, tracking context and beliefs while gradually earning autonomy based on accuracy. The local-first, model-agnostic tool provides immediate value from day one by surfacing missed information and prioritizing tasks, with capabilities expanding as it learns the user's judgment.", "body_md": "An AI that learns you — the longer you use it, the less you need to tell it.\n\nYour cognitive ceiling isn't set by your intelligence. It's set by your cognitive load. Patina is a persistent extension of your cognition: it holds your context, tracks your beliefs about your world, mirrors your judgment, and improves with every interaction.\n\n**Day 1:** Export your Slack. In 5 minutes, see everything you've missed, forgotten, or let slip.**Day 30:** It knows your priorities, drafts in your voice, and dismisses noise automatically.**Day 90:** It predicts what you'd do, catches contradictions across conversations, and operates silently.\n\n```\n# Install\nuv tool install patina\n\n# Initialize\npatina init\n\n# Ingest from a Slack export (immediate value)\npatina ingest --from-export ~/Downloads/slack-export.zip\n\n# See what needs your attention\npatina catch-up\n\n# See everything ranked by priority quadrant\npatina priorities\n# Priority + judgment\npatina catch-up                    # unified view: needs action / new / waiting\npatina priorities                  # grouped by quadrant (Q1-Q4)\npatina dismiss <id>                # dismiss noise, trains the model\npatina objectives add \"Ship v2\" --keywords \"release,deploy\"\n\n# Style + drafting\npatina style build                 # build communication profiles from sent messages\npatina style show <name>           # view patterns for a person\npatina draft --to <name> --context \"follow up on the timeline\"\n\n# Belief graph\npatina extract                     # extract beliefs from observations via LLM\npatina beliefs --type person       # entities with claim counts\npatina stale                       # decayed beliefs below confidence threshold\npatina contradictions              # conflicting claims\npatina relationships --top 20      # trust level + activity map\n\n# Graduated autonomy\npatina autonomy status             # current level, accuracy, anti-patterns\npatina approve <id>                # approve a proposed action\npatina reject <id>                 # reject (freezes advancement, stores anti-pattern)\npatina autonomy set-level <N>      # manual override (0-6)\n\n# Live adapters\npatina connect slack --token \"xoxb-...\"\npatina ingest                      # fetch from configured adapters\n\n# Heartbeat (background tasks)\npatina heartbeat once              # ingest + decay + escalation check\npatina heartbeat start --interval 30\n\n# Interactive conversation (Claude Agent SDK)\npatina chat\n\n# HTTP server for gateway integration\npatina serve --port 8321\n\n# Telegram gateway (talk to your agent from your phone)\npatina gateway\n┌─────────────────────────────────────────────────┐\n│ Tier 3: Frontier LLM (Claude, GPT-4o)           │ Synthesis, drafts, contradictions\n├─────────────────────────────────────────────────┤\n│ Tier 2: Local LLM (Qwen 3.x, Ollama)            │ Entity extraction, classification\n├─────────────────────────────────────────────────┤\n│ Tier 1: Deterministic (no LLM)                  │ Scoring, decay, graph queries\n└─────────────────────────────────────────────────┘\n        ↓ all tiers feed ↓\n┌─────────────────────────────────────────────────┐\n│ Belief Graph (SQLite)                           │\n│ Entities → Relationships → Claims               │\n│ Confidence decay · Provenance · Contradictions  │\n└─────────────────────────────────────────────────┘\n```\n\nThe system is fully functional at Tier 1 alone (zero LLM calls). Each tier adds capability but never load-bears. Local-first: all data stays in `~/.patina/store.db`\n\n.\n\n**Persistent belief model with decay**— not a message archive, a living world model** Judgment learned from your decisions**— not universal rules, YOUR priorities** Graduated autonomy earned by accuracy**— not configured, proven** Local-first, model-agnostic**— runs offline, no vendor lock-in** Deterministic core**— the intelligence is math and graphs, not LLM calls** Day-one value from export**— no warm-up period\n\nPatina runs as an MCP server for conversational use from Claude Code, Cline, or any MCP host. 21 tools including `session_checkpoint`\n\nfor graceful context handoff and `recent_messages`\n\nfor conversational continuity across stateless sessions.\n\n```\n{\n  \"mcpServers\": {\n    \"patina-core\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"patina-mcp\"],\n      \"cwd\": \"/path/to/patina\"\n    }\n  }\n}\n```\n\nAll config lives in `~/.patina/config.yaml`\n\n. Credentials never leave your machine.\n\n```\nowner:\n  user_ids: [\"U0ABC123\"]\n  name: \"Your Name\"\nadapters:\n  chat:\n    - provider: slack\n      token: \"xoxb-...\"\nheartbeat:\n  enabled: true\n  interval_minutes: 30\ngit clone https://github.com/Sanctum-Origo-Systems/patina.git\ncd patina\nuv sync\n\n# Generate demo data and start chatting\nuv run python scripts/generate_demo_export.py --output demo-export.zip\nuv run patina init\nuv run patina ingest --from-export demo-export.zip\nuv run patina extract --model sonnet  # re-run if it times out — skips already-processed\nuv run python scripts/seed_decisions.py  # demo only — simulates user behavior for trust scoring\nuv run patina style build              # build communication style profiles from sent messages\nuv run patina chat\n\n# Try asking:\n#   \"What needs my attention?\"\n#   \"Who do I trust most?\"\n#   \"What do we know about Jordan?\"\n#   \"Draft a message to Alexis about the Atlas timeline\"\n#   \"Any contradictions in my beliefs?\"\n\n# Run tests + evals\nuv run pytest\nuv run pytest eval/deterministic/\n\n# Lint\nuv run ruff check && uv run ruff format\n```\n\nApache 2.0", "url": "https://wpnews.pro/news/show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks", "canonical_source": "https://github.com/Sanctum-Origo-Systems/patina", "published_at": "2026-06-04 22:39:28+00:00", "updated_at": "2026-06-04 22:47:35.303409+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "ai-agents", "natural-language-processing", "machine-learning"], "entities": ["Patina", "Slack"], "alternates": {"html": "https://wpnews.pro/news/show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks", "markdown": "https://wpnews.pro/news/show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks.md", "text": "https://wpnews.pro/news/show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks.txt", "jsonld": "https://wpnews.pro/news/show-hn-patina-an-ai-that-learns-your-judgment-not-just-your-tasks.jsonld"}}