{"id":51534378,"url":"https://github.com/Smart-AI-Memory/attune-ai","last_synced_at":"2026-07-28T05:00:34.275Z","repository":{"id":335933746,"uuid":"1147102407","full_name":"Smart-AI-Memory/attune-ai","owner":"Smart-AI-Memory","description":"Attune-AI is a spec-driven meta-orchestration framework designed to establish a deterministic alignment layer between autonomous LLM agents and a production codebase.","archived":false,"fork":false,"pushed_at":"2026-07-27T17:12:34.000Z","size":127357,"stargazers_count":10,"open_issues_count":19,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-27T19:07:56.916Z","etag":null,"topics":["ai","claude","cost-optimization","developer-tools","llm","multi-agent","sdd","spec-driven-development","workflows"],"latest_commit_sha":null,"homepage":"https://attune-ai.dev","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Smart-AI-Memory.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":"docs/governance.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["silversurfer562"],"custom":["https://smartaimemory.com","mailto:admin@smartaimemory.com?subject=Empathy%20Framework%20Support"]}},"created_at":"2026-02-01T07:35:24.000Z","updated_at":"2026-07-27T15:33:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c81f437-f22c-489a-98c7-9103206b93b4","html_url":"https://github.com/Smart-AI-Memory/attune-ai","commit_stats":null,"previous_names":["smart-ai-memory/attune-ai"],"tags_count":130,"template":false,"template_full_name":null,"purl":"pkg:github/Smart-AI-Memory/attune-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smart-AI-Memory%2Fattune-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smart-AI-Memory%2Fattune-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smart-AI-Memory%2Fattune-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smart-AI-Memory%2Fattune-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Smart-AI-Memory","download_url":"https://codeload.github.com/Smart-AI-Memory/attune-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smart-AI-Memory%2Fattune-ai/sbom","scorecard":{"id":1242855,"data":{"date":"2026-02-02T18:50:05Z","repo":{"name":"github.com/Smart-AI-Memory/attune-ai","commit":"030275431c84cbf6c74b34e101f73ebaf994d51d"},"scorecard":{"version":"v5.3.0","commit":"c22063e786c11f9dd714d777a687ff7c4599b600"},"score":4.3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#security-policy"}},{"name":"Maintained","score":0,"reason":"project was created within the last 90 days. Please review its contents carefully","details":["Warn: Repository was created within the last 90 days."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#license"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-mr82-8j83-vxmv","Warn: Project is vulnerable to: GHSA-59g5-xgcq-4qw3","Warn: Project is vulnerable to: GHSA-wp53-j4wj-2cfg","Warn: Project is vulnerable to: PYSEC-2024-153 / GHSA-rxff-vr5r-8cj5","Warn: Project is vulnerable to: PYSEC-2022-183 / GHSA-h8pj-cxx2-jfg2","Warn: Project is vulnerable to: PYSEC-2021-47 / GHSA-5jqp-qgf6-3pvh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#fuzzing"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: :0"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dependency-update-tool"}},{"name":"SAST","score":3,"reason":"SAST tool is not run on all commits -- score normalized to 3","details":["Warn: 3 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#sast"}},{"name":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Info: 'branch protection settings apply to administrators' is required to merge on branch 'main'","Warn: could not determine whether codeowners review is allowed","Warn: no status checks found to merge onto branch 'main'","Warn: PRs are not required to make changes on branch 'main'; or we don't have data to detect it.If you think it might be the latter, make sure to run Scorecard with a PAT or use Repo Rules (that are always public) instead of Branch Protection settings"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.1.5 not signed: https://api.github.com/repos/Smart-AI-Memory/attune-ai/releases/282110376","Warn: release artifact v2.1.5 does not have provenance: https://api.github.com/repos/Smart-AI-Memory/attune-ai/releases/282110376"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#signed-releases"}},{"name":"Contributors","score":6,"reason":"project has 2 contributing companies or organizations -- score normalized to 6","details":["Info: found contributions from: Smart-AI-Memory, smartai memory"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"4 out of 4 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#ci-tests"}}]},"last_synced_at":"2026-02-02T18:54:50.902Z","repository_id":335933746,"created_at":"2026-02-02T18:54:50.902Z","updated_at":"2026-02-02T18:54:50.902Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35976727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-28T02:00:06.341Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","cost-optimization","developer-tools","llm","multi-agent","sdd","spec-driven-development","workflows"],"created_at":"2026-07-09T07:00:25.809Z","updated_at":"2026-07-28T05:00:34.268Z","avatar_url":"https://github.com/Smart-AI-Memory.png","language":"HTML","funding_links":["https://github.com/sponsors/silversurfer562","https://smartaimemory.com","mailto:admin@smartaimemory.com?subject=Empathy%20Framework%20Support"],"categories":["Source Catalog"],"sub_categories":[],"readme":"# Attune AI\n\n\u003c!-- mcp-name: io.github.Smart-AI-Memory/attune-ai --\u003e\n\n**Spec-driven development for Claude Code — turn requirements into reliable software.**\n\n🌐 **Docs \u0026 guides: [attune-ai.dev](https://attune-ai.dev)**\n\n\u003c!-- Badge maintenance: PyPI/Downloads/Coverage/Security are LIVE (auto-update,\n     no upkeep). The tests count is a manually-maintained round FLOOR — bump it\n     only on major drift (e.g. once the suite clears 25,000); a round floor\n     can't go subtly stale the way a precise value does. `scripts/check_badge_freshness.py`\n     (CI) fails if the floor ever over-claims or drifts too far below reality. --\u003e\n[![PyPI](https://img.shields.io/pypi/v/attune-ai?color=blue)](https://pypi.org/project/attune-ai/)\n[![Downloads](https://static.pepy.tech/badge/attune-ai)](https://pepy.tech/projects/attune-ai)\n[![Downloads/month](https://static.pepy.tech/badge/attune-ai/month)](https://pepy.tech/projects/attune-ai)\n[![Downloads/week](https://static.pepy.tech/badge/attune-ai/week)](https://pepy.tech/projects/attune-ai)\n[![Tests](https://img.shields.io/badge/tests-20%2C000%2B%20passing-brightgreen)](https://github.com/Smart-AI-Memory/attune-ai/actions/workflows/tests.yml)\n[![Coverage](https://img.shields.io/codecov/c/github/Smart-AI-Memory/attune-ai?branch=main)](https://codecov.io/gh/Smart-AI-Memory/attune-ai)\n[![Security](https://github.com/Smart-AI-Memory/attune-ai/actions/workflows/security.yml/badge.svg)](https://github.com/Smart-AI-Memory/attune-ai/actions/workflows/security.yml)\n[![Python](https://img.shields.io/badge/python-3.10--3.14-blue)](https://www.python.org)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](https://github.com/Smart-AI-Memory/attune-ai/blob/main/LICENSE)\n\n---\n\n**Attune AI** gives Claude Code persistent memory. Your agent stops\nstarting from zero: a stash → recall → promote loop carries\ndecisions, bugs, and hard-won lessons from one session into the\nnext, and a retrievable lessons corpus surfaces the right lesson at\nthe exact moment a prompt needs it — local-first, working from a\nplain `pip install attune-ai`. The economics are measured, not\npromised: recall loads a few hundred exactly-relevant tokens instead\nof your whole corpus — 67× fewer tokens on our own 800+ lesson\nstore, retrieved at P@3 96% on a frozen trap-moment benchmark\n(details in [the memory suite](#the-memory-suite--out-of-the-box-measured)\nbelow).\n\nAround that memory core, the same package also ships a spec-driven,\nmulti-agent toolkit: 20 workflows and \u003c!-- cap:mcp_registered_tool_count --\u003e60 MCP tools\u003c!-- /cap --\u003e dispatching 2–6\ndomain-specific subagents behind Socratic quality gates, RAG\ngrounding with a citation-per-claim contract (mean per-claim\nfaithfulness CI-gated at ≥ 0.97; 0.98 currently measured, N=20 runs\non the 40-query golden set), and generation fact-checking — one\ninstall, one MCP server.\n\nWe run our own knowledge base on it: the docs, help templates, and\n800+ engineering lessons at [attune-ai.dev](https://attune-ai.dev)\nare authored, grounded, and maintained entirely by Attune's own\nstack.\n\n**Managing and creating help-content, docs, or knowledge-bases?**\nThat's [`attune-gui`](https://github.com/Smart-AI-Memory/attune-gui)\n— a dedicated Living Docs dashboard wrapping `attune-rag`,\n`attune-help`, and `attune-author` in a single UI. `attune-ai` is the\ndeveloper workflow hub; `attune-gui` is the docs hub.\n\n---\n\n## What this costs\n\nThere are two ways to run Attune, and they bill differently. Pick the\nrow you're in:\n\n| How you run it | What it costs |\n| -------------- | ------------- |\n| **Plugin in Claude Code** (skills, hooks, forms) | Your Claude subscription. No API key, no extra charge. |\n| **`attune` CLI + MCP tools** | Direct Anthropic API calls — needs `ANTHROPIC_API_KEY` with **API credits**. |\n\n**The one thing people get wrong:** a Claude Pro/Max subscription does\n*not* include API credits. They are separate products. The subscription\npowers Claude Code — and therefore the plugin — but the CLI and MCP\ntools call the Anthropic API directly, so a key without pay-as-you-go\ncredit returns `credit balance is too low`. If you only use the plugin,\nthis never comes up.\n\nFree on either path, because they never call a model: the elicitation\nforms, the security hooks, path validation, memory storage and recall,\nand every local transform. See [API Mode](#api-mode) for keys and\nrouting, and [Installation Options](#installation-options) for extras.\n\n---\n\n\u003c!-- ROTATING SLOT: this \"New in \u003cversion\u003e\" section is replaced each\n     release with the headline feature; the displaced content moves to\n     a permanent section below (see \"Dynamic forms\" for the pattern).\n     Don't stack a second \"New in\" section here. --\u003e\n\n## New in 10.0.0 — one memory architecture, no legacy layer\n\nMajor version, one breaking change: the legacy memory-graph API\n(`attune.memory.MemoryGraph` and its node/edge types) is removed.\nCurated memory has been plain `.md` files served from Redis since\n9.6.0 — the graph was the layer nothing living called, confirmed by\na usage audit before deletion (receipts in\n`docs/specs/archive/memorygraph-value-gate/`). If you never imported\n`MemoryGraph` — telemetry says that's everyone — nothing changes:\nsame install, same memory loop, same measured economics below.\nAccessing a removed name raises an error naming the successor, and\nthere is no data migration because the graph store was already\nretired.\n\n## The memory suite — out of the box, measured\n\n**Your agent stops starting from zero — with a plain\n`pip install attune-ai`.** The memory suite matured across recent\nreleases (curated promotion in 9.5, files-canonical unification in\n9.6, Redis / Agent Memory Server client as a core dependency in\n9.7). The loop:\n\n- **Stash on stop** — a `Stop` hook extracts decisions, bugs, and\n  references from the session (local LLM when available, heuristic\n  fallback) and writes them to the memory store: a local file by\n  default, Redis Agent Memory Server when one is reachable.\n- **Recall at the door** — a `SessionStart` hook surfaces the most\n  recent findings for your project, and warns when the memory\n  backend is unreachable instead of degrading silently.\n- **Promote what endures** — a reviewed stash→curated path: the\n  agent drafts a node per candidate, you verdict each one (the\n  30-day test), and promotion lands a git-tracked `.md` file in\n  the curated corpus. Files are the store; Redis serves them —\n  recall pulls a few hundred exactly-relevant tokens on demand\n  instead of re-reading whole files into context.\n- **Lessons at the trap moment** — a `UserPromptSubmit` hook\n  retrieves your project's engineering lessons (from\n  `.claude/lessons.md` or `CLAUDE.md`) when a prompt hits a known\n  trap; a `PreToolUse` hook surfaces curated rules at the exact\n  tool call they govern.\n- **On demand** — `/recall \u003ctopic\u003e` searches both stores with\n  results labeled by source; `/remember` captures and manages\n  facts explicitly; a full MCP tool surface (memory, personal\n  memory, Redis/AMS) gives agents the same access.\n\nMemory is local-first — nothing leaves your machine, and without a\nRedis server everything degrades to the file backend with clear\nguidance. Your memory, your corpus: we dogfood the loop on our own\n800+ engineering lessons, retrieved via attune-rag at **P@3 96%**\n(100% on the high-severity subset) on a frozen trap-moment benchmark.\n\n**The economics, measured (2026-07-05 snapshot; corpus has grown\nsince — the ratios below only improve as it does).** Durable memory\nwas 303,205 tokens across 752 docs at measurement time; a session\nrecalls only the relevant slice:\n\n| Memory-suite recall | Instead of loading | You load | Win |\n|---|--:|--:|--:|\n| Trap-moment lessons | 202,042 tok (583 lessons) | ≤3,000 tok | **67× fewer tokens** |\n| SessionStart digest | 16 corpus files (4.6 ms) | one Redis call (0.6 ms) | **~7× faster** |\n\nThe lessons injection stays budget-capped no matter how large the\ncorpus grows, and recall is a single warm Redis call — so both wins\nwiden as your memory does. Numbers from `benchmarks/memory_savings.py`\non our dogfood store (cl100k_base).\n\n---\n\n## Multi-LLM collaboration — three models, one repo, receipts required\n\n**Your repo stops being single-provider.** As of 10.6.0, attune\ntreats Claude Code, OpenAI Codex, and Google Antigravity as seats at\nthe same table — with the discipline that a claim without a receipt\ndoesn't ship:\n\n- **`/roundtable`** — convene Claude, Antigravity, and Codex to\n  deliberate a question on a Redis-backed board. Seats post\n  positions independently, synthesis compiles them, and *you* chair\n  what gets promoted — nothing lands without a ruling. Headless\n  routines run the same loop on a schedule.\n- **`/cross-review`** — a one-seat advisory second opinion on a real\n  diff from a *different* model than the one that wrote it.\n  Advisory only, board-recorded.\n- **Cross-provider session handoff** — `handoff_create` /\n  `handoff_resume` MCP tools write a portable, verifiable resume\n  brief so one agent can pick up where another stopped.\n- **Provider-neutral session memory** — the `session_memory_*` MCP\n  tools give every seat the same stash/recall/forget surface over\n  the shared store, with a PII/secrets gate that redacts at rest\n  and fails closed on secrets. Verified live from a Codex session:\n  capture → recall (email stored as `[EMAIL]`) → forget →\n  gone.\n- **A projected collaboration contract** — one master file projects\n  to `AGENTS.md` and per-provider mirrors, so any agent learns the\n  repo's rules (read-only preflight, branch discipline, shared\n  memory etiquette) without Claude-specific context.\n\nCodex installs the same plugin from its marketplace\n(`codex plugin install attune-ai@attune-ai`); Antigravity connects\nover MCP. We dogfood all of it on this repository — the multi-model\nrelease audit for 10.6.0 ran through the roundtable itself, and\n10.6.1 exists because a cross-provider receipt probe caught a\nprotocol bug the primary client silently tolerated.\n\n---\n\n## Ecosystem\n\n| Package | Role | Install |\n| ------- | ---- | ------- |\n| **`attune-ai`** | Developer workflow hub (this package) | `pip install attune-ai` |\n| **`attune-gui`** | Living Docs dashboard — create, manage, search help content | standalone app |\n| **`attune-rag`** | RAG pipeline (core dep of attune-ai, v0.7+) | bundled |\n| **`attune-verify`** | Generation fact-checker — backs the `/verify` skill (core dep) | bundled |\n| **`attune-author`** | Help content authoring, staleness detection | `pip install 'attune-ai[author]'` |\n| **`attune-help`** | Progressive-depth template runtime | `pip install attune-help` |\n\n`attune-rag` and `attune-verify` both ship as **core dependencies** of\n`attune-ai` — retrieval grounding and generation fact-checking are\non by default, no extra needed. `attune-help` is standalone — not\npulled in by a standard `attune-ai` install, but available as an\noptional corpus for `attune-rag` via\n`pip install 'attune-rag[attune-help]'`.\n\n---\n\n## How It Works\n\n### 1. Skills trigger automatically\n\nSay what you need in Claude Code and the right skill activates:\n\n```text\n\"review my code\"        → code-quality skill\n\"scan for vulns\"        → security-audit skill\n\"generate tests\"        → smart-test skill\n\"plan this feature\"     → planning skill\n```\n\nNo command to remember. Claude reads your intent and picks the skill.\nEach skill runs a specialist multi-agent team, not a single prompt.\n\n### 2. Multi-agent teams, not single prompts\n\nEvery workflow dispatches 2–6 subagents in parallel. Each reads your\ncode with `Read`, `Glob`, and `Grep`. An orchestrator synthesizes\ntheir findings into a unified result:\n\n```text\nsecurity-audit → vuln-scanner + secret-detector + auth-reviewer + remediation-planner\ncode-review    → security + quality + perf + architect\ntest-gen       → identifier + designer + writer\n```\n\nSubagents are assigned models by task complexity — Opus for deep\nreasoning, Sonnet for analysis, Haiku for fast scanning — keeping\ncost proportional to value.\n\n**A head start on `/agents`, too.** Beyond the workflow teams above,\nattune-ai ships a curated set of Claude Code subagents —\n`security-reviewer`, `spec-author`, `refactor-planner`,\n`release-prep-auditor`, and more — that appear in your `/agents` list the\nmoment the plugin installs. Claude Code gives you the *mechanism* to build\nsubagents; attune-ai gives you a *running start* — use them as-is, or fork\none as the scaffold for your own.\n\n### 3. Socratic before execution\n\nWorkflows ask questions before executing, not after. The `spec`\nworkflow brainstorms, then plans, then executes. `planning` clarifies\nscope before writing a line of code. This eliminates the most common\nfailure mode: confidently solving the wrong problem.\n\n**Dynamic communication — the agent adapts how it talks to you.**\nThe headline of this release: instead of a fixed wall of prose, Attune\nnow *dynamically* shapes each exchange to fit the moment — rendering an\ninteractive form in response to your prompt whenever a structured turn\ncommunicates better than text. A multi-part question becomes one form\nyou answer with a click; a recommendation arrives as weighable cards; a\ndisagreement is shown side-by-side so you can overrule it in one tap.\nThis is a deliberate effort to *improve human/AI communication* — making\nthe back-and-forth faster, clearer, and less ambiguous. Three of the\nfour constructs fire at a **fork** — a point where the conversation\ncan't move forward without your choice; the fourth (**progress**) is a\nstatus report, not a fork. The agent picks the right *construct* for\nthe moment:\n\n- **intake** *(fork)* — gathers several independent decisions as a\n  single (multi-select-capable) form, instead of N back-and-forth\n  questions.\n- **decision** *(fork)* — offers a *recommended* option with a\n  rationale and per-option tradeoffs, rendered as cards (consumed by\n  the `/spec` approval gate).\n- **pushback** *(fork)* — when the agent disagrees with your stated\n  approach, it shows \"your approach\" beside \"I'd suggest instead\" with\n  a \"why\", and you overrule or switch with one pick (`/spec` plan\n  review).\n- **progress** *(report)* — a done / in-progress / blocked status\n  board whose blocked items are a picker for what to fix next (`/spec`\n  execute).\n\nAll constructs share one declarative form model and validator, render\nrichly on widget-capable surfaces (e.g. claude.ai / Cowork) and degrade\ngracefully to a recommendation-first menu elsewhere. The terse reply\nvocab (`y` / `go` / `1`) answers any of them.\n\n### 4. RAG-grounded generation\n\n`attune-rag` (core dep) grounds LLM generation in retrieved corpus\npassages and enforces citation-per-claim, delivering **0.98 mean\nper-claim faithfulness on the current CI-gated benchmark** (40\nqueries, N=20 runs, floor ≥0.97) — the large majority of generated\nclaims are grounded in their cited passages. The citation-per-claim\ndesign itself was chosen via an A/B comparison (2026-04-19): the\nconservative per-query bucket rate (a single ungrounded claim\ndisqualifies the whole response) dropped from 46.7% without the\ncontract to 6.7% with it. Retrieved passages are wrapped in sentinel\ntags to prevent prompt injection. The Claude provider automatically\ncaches the stable RAG context prefix, eliminating repeated token\ncosts across calls.\n\n### 5. Memory that compounds across sessions\n\nMost AI coding sessions start from zero. Attune ships a\ncross-session memory loop — stash on stop, recall at the door,\nreviewed promotion into a git-tracked curated corpus, and lessons\nretrieved at the exact trap moment they guard against. Covered in\ndepth in \"The memory suite\" section at the top of this README; the\nhook-by-hook mechanics and tunables live in the\n\"Session continuity \u0026 cross-session memory\" section below.\n\n---\n\n## Dynamic forms — structured human/AI communication\n\nAttune improves how you and the AI communicate by dynamically using\ninteractive forms (shipped in 9.3.0). Instead of a fixed wall of\nprose, Attune renders the right form whenever a structured turn\ncommunicates better than text — a multi-part question becomes one\nform you answer with a click, a recommendation arrives as weighable\ncards, and a disagreement is shown side-by-side so you can overrule\nit in one tap. Three constructs fire at a **fork** — a point where\nthe conversation needs your choice to continue; the fourth\n(**progress**) is a status report, not a fork:\n\n- **intake** *(fork)* — gather several independent decisions in one\n  form\n- **decision** *(fork)* — a recommended option with rationale +\n  per-option tradeoffs (`/spec` approval gate)\n- **pushback** *(fork)* — agent dissent shown as \"your approach\" vs\n  \"I'd suggest instead\"; overrule or switch in one pick (`/spec` plan\n  review)\n- **progress** *(report)* — a done / in-progress / blocked board\n  whose blocked items are a fix-next picker (`/spec` execute)\n\nAll constructs share one declarative form model and validator, render\nrichly on widget-capable surfaces (e.g. claude.ai / Cowork) and degrade\ngracefully to a recommendation-first menu elsewhere. The terse reply\nvocab (`y` / `go` / `1`) answers any of them.\n\n---\n\n## Get Started in 60 Seconds\n\n### Plugin (works standalone)\n\n```bash\nclaude plugin marketplace add Smart-AI-Memory/attune-ai\nclaude plugin install attune-ai@attune-ai\n```\n\nThen say \"what can attune do?\" in Claude Code.\n\n### Add Python Package (unlocks CLI + MCP)\n\n```bash\npip install attune-ai\nattune            # shows your next steps\n```\n\nThen check your setup with `attune validate` and run your first\nworkflow: `attune workflow run code-review --path src/`.\n\nSetup fight you? [Tell me where](https://github.com/Smart-AI-Memory/attune-ai/discussions/1325) — I'm actively fixing this.\n\nThe core install includes the CLI, all workflows, and the MCP\nserver. See [Installation Options](#installation-options) for\nper-surface extras (API-mode agents, ops dashboard, Redis memory).\n\n### What Each Layer Adds\n\n| Capability | Plugin only | Plugin + pip |\n| ---------- | ----------- | ------------ |\n| \u003c!-- cap:skill_count --\u003e26 auto-triggering skills\u003c!-- /cap --\u003e | Yes | Yes |\n| Security hooks | Yes | Yes |\n| Prompt-based analysis | Yes | Yes |\n| \u003c!-- cap:mcp_registered_tool_count --\u003e60 MCP tools\u003c!-- /cap --\u003e | -- | Yes |\n| `attune` CLI | -- | Yes |\n| Multi-agent workflows | -- | Yes |\n| Help system maintenance | -- | Yes |\n| CI/CD automation | -- | Yes |\n| Ops dashboard (`attune ops`) — run history, cost tiles, telemetry | -- | Yes |\n\n\u003e **Note:** Skills use your Claude subscription at no extra cost.\n\u003e CLI and MCP tools make direct Anthropic API calls — API key with\n\u003e credits required. See [What this costs](#what-this-costs).\n\n---\n\n## Cheat Sheet\n\n| Input | What Happens |\n| ----- | ------------ |\n| \"what can attune do?\" | Auto-triggers `attune-hub` — guided discovery |\n| \"build this feature from scratch\" | Auto-triggers `spec` — brainstorm, plan, execute |\n| \"review my code\" | Auto-triggers `code-quality` skill |\n| \"scan for vulnerabilities\" | Auto-triggers `security-audit` skill |\n| \"generate tests for src/\" | Auto-triggers `smart-test` skill |\n| \"fix failing tests\" | Auto-triggers `fix-test` skill |\n| \"predict bugs\" | Auto-triggers `bug-predict` skill |\n| \"generate docs\" | Auto-triggers `doc-gen` skill |\n| \"plan this feature\" | Auto-triggers `planning` skill |\n| \"refactor this module\" | Auto-triggers `refactor-plan` skill |\n| \"prepare a release\" | Auto-triggers `release-prep` skill |\n| \"tell me more\" | Auto-triggers `coach` — progressive depth help |\n| \"run all workflows\" | Auto-triggers `workflow-orchestration` skill |\n\n---\n\n## Workflows\n\n| Workflow | Agents | What It Does |\n| --- | --- | --- |\n| **code-review** | security, quality, perf, architect | 4-perspective code review |\n| **security-audit** | vuln-scanner, secret-detector, auth-reviewer, remediation | Finds vulnerabilities and generates fix plans |\n| **deep-review** | security, quality, test-gap | Multi-pass deep analysis |\n| **perf-audit** | complexity, bottleneck, optimization | Identifies bottlenecks and O(n²) patterns |\n| **bug-predict** | pattern-scanner, risk-correlator, prevention | Predicts likely failure points |\n| **health-check** | dynamic team (2–6) | Project health across tests, deps, lint, CI, docs, security |\n| **test-gen** | identifier, designer, writer | Writes pytest code for untested functions |\n| **test-audit** | coverage, gap-analyzer, planner | Audits coverage and prioritizes gaps |\n| **doc-gen** | outline, content, polish | Generates documentation from source |\n| **doc-audit** | staleness, accuracy, gap-finder | Finds stale docs and drift |\n| **dependency-check** | inventory, update-advisor | Audits outdated packages and advisories |\n| **refactor-plan** | debt-scanner, impact, plan-generator | Plans large-scale refactors |\n| **simplify-code** | complexity, simplification, safety | Proposes simplifications with safety review |\n| **release-prep** | health, security, changelog, assessor | Go/no-go readiness check |\n| **release-gate** | parallel agent team (4 stages) | Release readiness assessment / go-no-go gate |\n| **release-notes** | agent-prep | Drafts release notes + LLM readiness advice |\n| **doc-orchestrator** | inventory, outline, content, polish | Full-project documentation |\n| **secure-release** | security, health, dep-auditor, gater | Release pipeline with risk scoring |\n| **research-synthesis** | summarizer, pattern-analyst, writer | Multi-source research synthesis |\n| **discovery-sweep** | pattern-scanner, verifier | Repo-wide bug-pattern sweep with verification, dashboard chips, and run drill-in |\n| **rag-code-gen** | retriever, generator | Citation-forced code generation grounded in the local attune-help corpus |\n| **orchestrated-health-check** | dynamic team via meta-orchestration | Same intent as `health-check` with explicit meta-orchestration of the sub-team |\n\n---\n\n## MCP Tools\n\n47 tools organized into 6 categories:\n\n### Workflow (22)\n\n`security_audit` `code_review` `bug_predict`\n`discovery_sweep` `performance_audit` `refactor_plan`\n`simplify_code` `deep_review` `test_generation`\n`test_audit` `test_gen_parallel` `doc_gen` `doc_audit`\n`doc_orchestrator` `release_notes` `health_check`\n`dependency_check` `secure_release` `research_synthesis`\n`analyze_batch` `analyze_image` `rag_knowledge_query`\n\n### Help (5)\n\n`help_lookup` `help_init` `help_status` `help_update`\n`help_maintain`\n\n### Memory (4)\n\n`memory_store` `memory_retrieve` `memory_search`\n`memory_forget`\n\n### Personal Memory (4)\n\n`personal_memory_capture` `personal_memory_recall`\n`personal_memory_topics` `personal_memory_forget`\n\n### Utility (8)\n\n`auth_status` `auth_recommend` `telemetry_stats`\n`context_get` `context_set` `attune_get_level`\n`attune_set_level` `list_capabilities`\n\n### Elicitation (4)\n\n`elicitation_ask` `elicitation_render_form`\n`elicitation_collect_response` `elicitation_render_widget`\n\n---\n\n## Accuracy \u0026 Faithfulness\n\n### RAG grounding — 0.996 per-claim faithfulness (over 99%)\n\nMeasured on a 15-query golden set with retrieval held constant. The\n**per-claim faithfulness** score (how much of what the model says is\ngrounded in cited passages) is the headline metric. The conservative\n**per-query bucket rate** (a single ungrounded claim disqualifies the\nwhole response) is shown alongside for completeness — they measure\nrelated-but-different things, and the per-claim number is the right\n\"how trustworthy is each statement\" answer:\n\n| Prompt variant | Per-claim faithfulness | Per-query hallucination |\n|---|---|---|\n| baseline (no grounding rule) | 0.938 | 46.67% |\n| strict (\"answer only from context\") | 0.968 | 26.67% |\n| **citation (shipped default)** | **0.996** | **6.67%** |\n\nThe gain comes from the prompting contract (citation-per-claim), not\nfrom retrieval. Full methodology:\n\n- [`docs/rag/faithfulness-decision-2026-04-19.md`](https://github.com/Smart-AI-Memory/attune-ai/blob/main/docs/rag/faithfulness-decision-2026-04-19.md)\n- [`docs/rag/ab-report-2026-04-19.json`](https://github.com/Smart-AI-Memory/attune-ai/blob/main/docs/rag/ab-report-2026-04-19.json)\n\n### Help resolver — 48/48 benchmark queries pass at P@1\n\n| Bucket | Count | P@1 | Notes |\n|---|---|---|---|\n| easy | 22 | 22/22 (100%) | feature-name synonyms |\n| medium | 26 | 26/26 (100%) | paraphrases + industry terminology |\n| hard | 4 | 0/4 (XFAIL) | shared-tag collisions — structural ambiguity |\n\n- [`tests/unit/help/fixtures/golden_queries.yaml`](https://github.com/Smart-AI-Memory/attune-ai/blob/main/tests/unit/help/fixtures/golden_queries.yaml)\n\n---\n\n## Why Attune?\n\n| | Attune AI | Static Docs | Agent Frameworks | Coding CLIs |\n| --- | --- | --- | --- | --- |\n| **Ready-to-use workflows** | 22 built-in | None | Build from scratch | None |\n| **Multi-agent teams** | 2–6 agents per workflow | None | Yes | No |\n| **MCP integration** | 47 native tools | None | No | No |\n| **Auto-triggering skills** | 23 skills, natural language | None | None | None |\n| **Socratic discovery** | Questions before execution | None | None | None |\n| **Portable security hooks** | PreToolUse + PostToolUse | None | No | No |\n\n---\n\n## Installation Options\n\n`pip install attune-ai` works out of the box — the CLI, all\nworkflows, the MCP server, RAG, cross-session memory (the Redis /\nAgent Memory Server client is a core dependency as of 9.7.0), and\nthe Agent SDK. Memory features activate when a Redis Stack server\nis reachable and degrade with guidance when not. Add extras only\nfor the surfaces you use:\n\n| You want | Install |\n| -------- | ------- |\n| Everything most users need, incl. Redis memory | `pip install attune-ai` |\n| Claude API mode + optional LangChain/LangGraph interop adapters | `pip install 'attune-ai[developer]'` |\n| The ops dashboard (`attune ops`) | `pip install 'attune-ai[ops]'` |\n| Help authoring (generate / maintain `.help/` templates) | `pip install 'attune-ai[author]'` |\n\n(`[redis]` remains as an empty backward-compat alias.) Extras\ncombine — for example\n`pip install 'attune-ai[developer,ops]'`. Keep the quotes:\nzsh and bash treat square brackets as glob characters.\n\nContributing? Clone and install the dev toolchain instead:\n\n```bash\ngit clone https://github.com/Smart-AI-Memory/attune-ai.git\ncd attune-ai \u0026\u0026 pip install -e '.[dev]'\n```\n\nThe `[rag]` extra is a **no-op alias** kept for backward\ncompatibility — `attune-rag` is now a core dependency included in\nevery install.\n\n---\n\n## Platform Support\n\n| Platform | Support |\n| -------- | ------- |\n| macOS | Full |\n| Linux | Full |\n| Windows via WSL2 | Full |\n| Windows native + Git Bash | Supported (Bash tool, POSIX-ish syntax) |\n| Windows native + PowerShell tool | Limited — security validation fails closed |\n\nNotes for native Windows:\n\n- Claude Code supports native Windows (10 1809+). Installing\n  [Git for Windows](https://gitforwindows.org/) enables the Bash\n  tool; without it, the PowerShell tool is used (opt-in via\n  `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`).\n- Under PowerShell, the security-validation hook applies a strict\n  command allowlist and **fails closed**: commands it does not\n  recognize are blocked rather than silently passed. Use Git Bash\n  or WSL2 for the full experience.\n- OS-level sandboxing is available on macOS/Linux/WSL2 only, not\n  native Windows.\n\n### Redis on Windows\n\nRedis has no native Windows build. Docker is the recommended path:\n\n```bash\ndocker run -d -p 6379:6379 redis:7-alpine\n```\n\nWithout a reachable Redis, cross-session memory degrades gracefully\nto the local file backend —\n`attune.memory.session_stash.backend_status()` reports\n`fallback: true` so the degradation is visible, and no errors are\nspammed to the session.\n\n---\n\n## API Mode\n\nAPI mode is what the `attune` CLI and the MCP tools run on. **It is not\nrequired to use Attune** — the Claude Code plugin runs on your\nsubscription and needs none of this (see\n[What this costs](#what-this-costs)). Set these up only if you want the\nCLI or MCP surfaces:\n\n```bash\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"     # Required *for API mode*\nexport REDIS_URL=\"redis://localhost:6379\"  # Optional\n```\n\nThe key must belong to an org with pay-as-you-go API credit. A Claude\nPro/Max subscription does not grant it — without credit the calls\nreturn `credit balance is too low`.\n\n### Model Routing\n\n| Model | Agents | Rationale |\n| --- | --- | --- |\n| **Opus** | security, vuln, architect | Deep reasoning |\n| **Sonnet** | quality, plan, research | Balanced analysis |\n| **Haiku** | complexity, lint, coverage | Fast scanning |\n\n```bash\nexport ATTUNE_AGENT_MODEL_SECURITY=sonnet  # Save cost\nexport ATTUNE_AGENT_MODEL_DEFAULT=opus     # Max quality\n```\n\n### Budget Controls\n\n| Depth | Budget | Use Case |\n| --- | --- | --- |\n| `quick` | $0.50 | Fast checks |\n| `standard` | $2.00 | Normal analysis (default) |\n| `deep` | $5.00 | Thorough multi-pass review |\n\n```bash\nexport ATTUNE_MAX_BUDGET_USD=10.0  # Override\n```\n\nOne-flag cheap mode for pattern-matching workflows (forces every\ninherit-default subagent onto Haiku; security/architect/plan/quality\nkeywords still get their pinned model):\n\n```bash\nattune workflow run bug-predict --cheap     # Haiku-default subagents\nattune workflow run refactor-plan --cheap\n```\n\nSee your spend live on the dashboard (`attune ops` → home) — today / 7-day\n/ MTD / 30-day tiles fed from the Anthropic admin cost-report API.\n\n---\n\n## Security\n\n- Path traversal protection on all file operations (CWE-22)\n- Memory ownership checks (`created_by` validation)\n- MCP rate limiting (60 calls/min per tool)\n- Hook import restriction (`attune.*` modules only)\n- PreToolUse security guard (blocks eval/exec, path traversal)\n- Prompt input sanitization (backticks, control chars, truncation)\n- PII scrubbing in telemetry\n- Automated security scanning (CodeQL, bandit, detect-secrets)\n\nSee [SECURITY.md](https://github.com/Smart-AI-Memory/attune-ai/blob/main/SECURITY.md) for vulnerability\nreporting and full security details.\n\n---\n\n## Privacy \u0026 Telemetry\n\nAttune AI keeps usage data local-first. An **opt-in, anonymous usage\nping** is available to help the project understand which workflows\npeople actually use — it is **OFF by default** and sends nothing\nunless you explicitly turn it on.\n\nWhen enabled, each ping carries exactly this, and nothing more:\n\n- the package (`attune-ai`) and its version\n- the workflow name you ran (e.g. `workflow.security_audit`)\n- your OS (`darwin` / `linux` / `windows`) and Python version\n  (e.g. `3.12`)\n- a rotating, anonymous install id (a random UUID you can reset)\n- a timestamp\n\nIt **never** sends paths, code, prompts, arguments, filenames,\nproject names, cost, tokens, or model data — the payload is frozen in\nsource and guarded by a regression test. Transport is fire-and-forget\nwith a short timeout, so it can never block, slow, or crash the CLI,\nand the collection endpoint stores no IP address and no request\nheaders.\n\n```bash\nattune telemetry status     # show exactly what would be sent\nattune telemetry enable     # opt in (mints an anonymous install id)\nattune telemetry disable    # opt out\n```\n\n`DO_NOT_TRACK=1` and `ATTUNE_USAGE_PING=0` force it off regardless of\nconfig; `ATTUNE_USAGE_PING=1` forces it on. Full payload disclosure is\nin [SECURITY.md](https://github.com/Smart-AI-Memory/attune-ai/blob/main/SECURITY.md).\n\n---\n\n## Session continuity \u0026 cross-session memory\n\nLightweight hook surfaces keep long Claude Code sessions\noriented and recoverable — and carry what you learned into the\nnext one. All are opt-in via plugin install and silent until\nthey have something to say.\n\n| Surface | Event | When it fires |\n|---------|-------|---------------|\n| `spec_orient.py` | `SessionStart` | On `startup` / `resume` / `clear`, prints up to 3 in-flight spec slugs. On `compact`, prints the most-recent spec body so the model keeps the spec in fresh post-compact context. |\n| `compact_warning.py` | `Stop` | Once per session when transcript size crosses ~70% of the context window. Emits a copy-pasteable resume prompt and recommends starting a fresh session. |\n| `/handoff` | slash command | On demand. Prints the same resume prompt as the auto-warning AND appends it to `~/.attune/last-handoff.md` so you can recover it later. |\n| `session_stash.py` | `Stop` | Once per session past a utilization floor: extracts durable findings (decisions, bugs, references) and stashes them to the memory store (file by default, Redis AMS when installed). |\n| `session_recall.py` | `SessionStart` | Surfaces the most recent cross-session findings for this project; warns when the configured memory backend is unreachable rather than degrading silently. |\n| `lesson_recall.py` | `UserPromptSubmit` | Surfaces up to 3 relevant lessons from the project's lessons corpus when a prompt matches a known trap moment; silent otherwise, once per (session, lesson). |\n| `jit_recall.py` | `PreToolUse` | Surfaces the curated rule governing a tool call at the decision point (e.g. release tagging), once per session. |\n| `/recall \u003ctopic\u003e` | slash command | On demand. Searches session findings and the lessons corpus, labels results by source, and names the answering backend. |\n\n### Tunable defaults\n\n- `ATTUNE_AI_COMPACT_WARNING_THRESHOLD` (default `0.70`) — fraction of context window before the warning fires.\n- `ATTUNE_AI_CHARS_PER_TOKEN` (default `4.0`) — utilization estimator's chars-to-tokens factor.\n- `ATTUNE_AI_CONTEXT_WINDOW_TOKENS` (default `200000`) — context window assumed by the estimator.\n- `ATTUNE_AI_WORKSPACE_ROOTS` (`os.pathsep`-separated paths: `:` on POSIX, `;` on Windows) — override the workspace roots scanned for `specs/`.\n- `ATTUNE_AI_SENTINEL_DIR` (default `~/.attune`) — directory for the once-per-session warning sentinel.\n- `ATTUNE_LESSON_RECALL` / `ATTUNE_JIT_RECALL` (set `0` to disable) — off-switches for the prompt-time and tool-call recall hooks.\n- `ATTUNE_LESSON_RECALL_FLOOR` (default `8.0`) — minimum retrieval score before a lesson surfaces at prompt time.\n\nThe transcript-size proxy is crude but monotonic: the warning\nfires when the user's total content characters cross the\nthreshold once. If your real auto-compact triggers consistently\nearlier or later than the warning, drop the threshold to `0.65`\nor raise it to `0.75`.\n\n---\n\n## Migration\n\n`attune-help` and `attune-author` now ship from the\n`Smart-AI-Memory/attune-ai` marketplace alongside `attune-ai` itself.\nThe separate `Smart-AI-Memory/attune-docs` marketplace is retired.\n\nNew users:\n\n```text\n/plugin marketplace add Smart-AI-Memory/attune-ai\n/plugin install attune-help@attune-ai\n/plugin install attune-author@attune-ai\n```\n\nIf you previously installed either from `attune-docs`:\n\n1. ```text\n   /plugin uninstall attune-help@attune-docs\n   /plugin uninstall attune-author@attune-docs\n   ```\n\n2. ```text\n   /plugin marketplace add Smart-AI-Memory/attune-ai\n   /plugin install attune-help@attune-ai\n   /plugin install attune-author@attune-ai\n   ```\n\n---\n\n## Links\n\n- [Full Documentation](https://attune-ai.dev)\n- [Plugin Setup](https://github.com/Smart-AI-Memory/attune-ai/blob/main/plugin/README.md)\n- [attune-gui](https://github.com/Smart-AI-Memory/attune-gui) — Living Docs dashboard\n- [GitHub Repository](https://github.com/Smart-AI-Memory/attune-ai)\n\n**Apache License 2.0** — Free and open source.\n\nIf you find Attune useful,\n[give it a star](https://github.com/Smart-AI-Memory/attune-ai) —\nit helps others discover the project.\n\n## Acknowledgments\n\n- **[Anthropic](https://www.anthropic.com/)** — For Claude AI, the\n  Model Context Protocol, and the Agent SDK patterns behind the\n  multi-agent orchestration layer\n- **[Boris Cherny](https://x.com/bcherny)** — Creator of Claude Code,\n  whose workflow posts validated Attune's plan-first, multi-agent approach\n- **[Affaan Mustafa](https://github.com/affaan-m/everything-claude-code)** — For battle-tested Claude Code configurations that inspired the hook system\n\n[View Full Acknowledgements](https://github.com/Smart-AI-Memory/attune-ai/blob/main/ACKNOWLEDGEMENTS.md)\n\n---\n\n**Built by Patrick Roebuck using Claude Code.**\n\n\u003c!-- mcp-name: io.github.Smart-AI-Memory/attune-ai --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmart-AI-Memory%2Fattune-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSmart-AI-Memory%2Fattune-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmart-AI-Memory%2Fattune-ai/lists"}