agent-notes 2.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. agent_notes-2.0.4/LICENSE +21 -0
  2. agent_notes-2.0.4/PKG-INFO +14 -0
  3. agent_notes-2.0.4/README.md +493 -0
  4. agent_notes-2.0.4/agent_notes/VERSION +1 -0
  5. agent_notes-2.0.4/agent_notes/__init__.py +1 -0
  6. agent_notes-2.0.4/agent_notes/__main__.py +4 -0
  7. agent_notes-2.0.4/agent_notes/cli.py +348 -0
  8. agent_notes-2.0.4/agent_notes/commands/__init__.py +27 -0
  9. agent_notes-2.0.4/agent_notes/commands/_install_helpers.py +262 -0
  10. agent_notes-2.0.4/agent_notes/commands/build.py +170 -0
  11. agent_notes-2.0.4/agent_notes/commands/doctor.py +112 -0
  12. agent_notes-2.0.4/agent_notes/commands/info.py +95 -0
  13. agent_notes-2.0.4/agent_notes/commands/install.py +99 -0
  14. agent_notes-2.0.4/agent_notes/commands/list.py +169 -0
  15. agent_notes-2.0.4/agent_notes/commands/memory.py +430 -0
  16. agent_notes-2.0.4/agent_notes/commands/regenerate.py +152 -0
  17. agent_notes-2.0.4/agent_notes/commands/set_role.py +143 -0
  18. agent_notes-2.0.4/agent_notes/commands/uninstall.py +26 -0
  19. agent_notes-2.0.4/agent_notes/commands/update.py +169 -0
  20. agent_notes-2.0.4/agent_notes/commands/validate.py +199 -0
  21. agent_notes-2.0.4/agent_notes/commands/wizard.py +720 -0
  22. agent_notes-2.0.4/agent_notes/config.py +154 -0
  23. agent_notes-2.0.4/agent_notes/data/agents/agents.yaml +352 -0
  24. agent_notes-2.0.4/agent_notes/data/agents/analyst.md +45 -0
  25. agent_notes-2.0.4/agent_notes/data/agents/api-reviewer.md +47 -0
  26. agent_notes-2.0.4/agent_notes/data/agents/architect.md +46 -0
  27. agent_notes-2.0.4/agent_notes/data/agents/coder.md +28 -0
  28. agent_notes-2.0.4/agent_notes/data/agents/database-specialist.md +45 -0
  29. agent_notes-2.0.4/agent_notes/data/agents/debugger.md +47 -0
  30. agent_notes-2.0.4/agent_notes/data/agents/devil.md +47 -0
  31. agent_notes-2.0.4/agent_notes/data/agents/devops.md +38 -0
  32. agent_notes-2.0.4/agent_notes/data/agents/explorer.md +23 -0
  33. agent_notes-2.0.4/agent_notes/data/agents/integrations.md +44 -0
  34. agent_notes-2.0.4/agent_notes/data/agents/lead.md +216 -0
  35. agent_notes-2.0.4/agent_notes/data/agents/performance-profiler.md +44 -0
  36. agent_notes-2.0.4/agent_notes/data/agents/refactorer.md +48 -0
  37. agent_notes-2.0.4/agent_notes/data/agents/reviewer.md +44 -0
  38. agent_notes-2.0.4/agent_notes/data/agents/security-auditor.md +44 -0
  39. agent_notes-2.0.4/agent_notes/data/agents/system-auditor.md +38 -0
  40. agent_notes-2.0.4/agent_notes/data/agents/tech-writer.md +32 -0
  41. agent_notes-2.0.4/agent_notes/data/agents/test-runner.md +36 -0
  42. agent_notes-2.0.4/agent_notes/data/agents/test-writer.md +39 -0
  43. agent_notes-2.0.4/agent_notes/data/cli/claude.yaml +25 -0
  44. agent_notes-2.0.4/agent_notes/data/cli/copilot.yaml +18 -0
  45. agent_notes-2.0.4/agent_notes/data/cli/opencode.yaml +22 -0
  46. agent_notes-2.0.4/agent_notes/data/commands/brainstorm.md +8 -0
  47. agent_notes-2.0.4/agent_notes/data/commands/debug.md +9 -0
  48. agent_notes-2.0.4/agent_notes/data/commands/review.md +10 -0
  49. agent_notes-2.0.4/agent_notes/data/global-claude.md +290 -0
  50. agent_notes-2.0.4/agent_notes/data/global-copilot.md +27 -0
  51. agent_notes-2.0.4/agent_notes/data/global-opencode.md +40 -0
  52. agent_notes-2.0.4/agent_notes/data/hooks/session-context.md.tpl +19 -0
  53. agent_notes-2.0.4/agent_notes/data/models/claude-haiku-4-5.yaml +15 -0
  54. agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-1.yaml +16 -0
  55. agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-5.yaml +16 -0
  56. agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-6.yaml +16 -0
  57. agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-7.yaml +15 -0
  58. agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4-5.yaml +16 -0
  59. agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4-6.yaml +15 -0
  60. agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4.yaml +16 -0
  61. agent_notes-2.0.4/agent_notes/data/pricing.yaml +33 -0
  62. agent_notes-2.0.4/agent_notes/data/roles/orchestrator.yaml +5 -0
  63. agent_notes-2.0.4/agent_notes/data/roles/reasoner.yaml +5 -0
  64. agent_notes-2.0.4/agent_notes/data/roles/scout.yaml +5 -0
  65. agent_notes-2.0.4/agent_notes/data/roles/worker.yaml +5 -0
  66. agent_notes-2.0.4/agent_notes/data/rules/code-quality.md +9 -0
  67. agent_notes-2.0.4/agent_notes/data/rules/safety.md +10 -0
  68. agent_notes-2.0.4/agent_notes/data/scripts/cost-report +211 -0
  69. agent_notes-2.0.4/agent_notes/data/skills/brainstorming/SKILL.md +57 -0
  70. agent_notes-2.0.4/agent_notes/data/skills/code-review/SKILL.md +64 -0
  71. agent_notes-2.0.4/agent_notes/data/skills/debugging-protocol/SKILL.md +51 -0
  72. agent_notes-2.0.4/agent_notes/data/skills/docker-compose/SKILL.md +318 -0
  73. agent_notes-2.0.4/agent_notes/data/skills/docker-compose-advanced/SKILL.md +575 -0
  74. agent_notes-2.0.4/agent_notes/data/skills/docker-dockerfile/SKILL.md +385 -0
  75. agent_notes-2.0.4/agent_notes/data/skills/docker-dockerfile-languages/SKILL.md +293 -0
  76. agent_notes-2.0.4/agent_notes/data/skills/git/SKILL.md +87 -0
  77. agent_notes-2.0.4/agent_notes/data/skills/rails-active-storage/SKILL.md +321 -0
  78. agent_notes-2.0.4/agent_notes/data/skills/rails-broadcasting/SKILL.md +374 -0
  79. agent_notes-2.0.4/agent_notes/data/skills/rails-concerns/SKILL.md +806 -0
  80. agent_notes-2.0.4/agent_notes/data/skills/rails-controllers/SKILL.md +510 -0
  81. agent_notes-2.0.4/agent_notes/data/skills/rails-controllers-advanced/SKILL.md +441 -0
  82. agent_notes-2.0.4/agent_notes/data/skills/rails-helpers/SKILL.md +677 -0
  83. agent_notes-2.0.4/agent_notes/data/skills/rails-initializers/SKILL.md +79 -0
  84. agent_notes-2.0.4/agent_notes/data/skills/rails-javascript/SKILL.md +567 -0
  85. agent_notes-2.0.4/agent_notes/data/skills/rails-jobs/SKILL.md +700 -0
  86. agent_notes-2.0.4/agent_notes/data/skills/rails-kamal/SKILL.md +483 -0
  87. agent_notes-2.0.4/agent_notes/data/skills/rails-lib/SKILL.md +101 -0
  88. agent_notes-2.0.4/agent_notes/data/skills/rails-mailers/SKILL.md +321 -0
  89. agent_notes-2.0.4/agent_notes/data/skills/rails-migrations/SKILL.md +268 -0
  90. agent_notes-2.0.4/agent_notes/data/skills/rails-models/SKILL.md +459 -0
  91. agent_notes-2.0.4/agent_notes/data/skills/rails-models-advanced/SKILL.md +398 -0
  92. agent_notes-2.0.4/agent_notes/data/skills/rails-routes/SKILL.md +804 -0
  93. agent_notes-2.0.4/agent_notes/data/skills/rails-style/SKILL.md +538 -0
  94. agent_notes-2.0.4/agent_notes/data/skills/rails-testing-controllers/SKILL.md +343 -0
  95. agent_notes-2.0.4/agent_notes/data/skills/rails-testing-models/SKILL.md +296 -0
  96. agent_notes-2.0.4/agent_notes/data/skills/rails-testing-system/SKILL.md +375 -0
  97. agent_notes-2.0.4/agent_notes/data/skills/rails-validations/SKILL.md +108 -0
  98. agent_notes-2.0.4/agent_notes/data/skills/rails-view-components/SKILL.md +511 -0
  99. agent_notes-2.0.4/agent_notes/data/skills/rails-view-components-advanced/SKILL.md +376 -0
  100. agent_notes-2.0.4/agent_notes/data/skills/rails-views/SKILL.md +413 -0
  101. agent_notes-2.0.4/agent_notes/data/skills/rails-views-advanced/SKILL.md +450 -0
  102. agent_notes-2.0.4/agent_notes/data/skills/refactoring-protocol/SKILL.md +64 -0
  103. agent_notes-2.0.4/agent_notes/data/skills/tdd/SKILL.md +57 -0
  104. agent_notes-2.0.4/agent_notes/data/templates/__init__.py +1 -0
  105. agent_notes-2.0.4/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
  106. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__init__.py +1 -0
  107. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
  108. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
  109. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/cursor.cpython-314.pyc +0 -0
  110. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
  111. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/claude.py +44 -0
  112. agent_notes-2.0.4/agent_notes/data/templates/frontmatter/opencode.py +104 -0
  113. agent_notes-2.0.4/agent_notes/doctor_checks.py +189 -0
  114. agent_notes-2.0.4/agent_notes/domain/__init__.py +17 -0
  115. agent_notes-2.0.4/agent_notes/domain/agent.py +34 -0
  116. agent_notes-2.0.4/agent_notes/domain/cli_backend.py +40 -0
  117. agent_notes-2.0.4/agent_notes/domain/diagnostics.py +29 -0
  118. agent_notes-2.0.4/agent_notes/domain/diff.py +44 -0
  119. agent_notes-2.0.4/agent_notes/domain/model.py +27 -0
  120. agent_notes-2.0.4/agent_notes/domain/role.py +13 -0
  121. agent_notes-2.0.4/agent_notes/domain/rule.py +13 -0
  122. agent_notes-2.0.4/agent_notes/domain/skill.py +15 -0
  123. agent_notes-2.0.4/agent_notes/domain/state.py +46 -0
  124. agent_notes-2.0.4/agent_notes/install_state.py +11 -0
  125. agent_notes-2.0.4/agent_notes/registries/__init__.py +16 -0
  126. agent_notes-2.0.4/agent_notes/registries/_base.py +46 -0
  127. agent_notes-2.0.4/agent_notes/registries/agent_registry.py +107 -0
  128. agent_notes-2.0.4/agent_notes/registries/cli_registry.py +89 -0
  129. agent_notes-2.0.4/agent_notes/registries/model_registry.py +85 -0
  130. agent_notes-2.0.4/agent_notes/registries/role_registry.py +64 -0
  131. agent_notes-2.0.4/agent_notes/registries/rule_registry.py +80 -0
  132. agent_notes-2.0.4/agent_notes/registries/skill_registry.py +141 -0
  133. agent_notes-2.0.4/agent_notes/services/__init__.py +8 -0
  134. agent_notes-2.0.4/agent_notes/services/diagnostics/__init__.py +47 -0
  135. agent_notes-2.0.4/agent_notes/services/diagnostics/_checks.py +272 -0
  136. agent_notes-2.0.4/agent_notes/services/diagnostics/_display.py +346 -0
  137. agent_notes-2.0.4/agent_notes/services/diagnostics/_fix.py +169 -0
  138. agent_notes-2.0.4/agent_notes/services/diff.py +349 -0
  139. agent_notes-2.0.4/agent_notes/services/fs.py +195 -0
  140. agent_notes-2.0.4/agent_notes/services/install_state_builder.py +210 -0
  141. agent_notes-2.0.4/agent_notes/services/installer.py +293 -0
  142. agent_notes-2.0.4/agent_notes/services/memory_backend.py +155 -0
  143. agent_notes-2.0.4/agent_notes/services/rendering.py +329 -0
  144. agent_notes-2.0.4/agent_notes/services/session_context.py +23 -0
  145. agent_notes-2.0.4/agent_notes/services/settings_writer.py +79 -0
  146. agent_notes-2.0.4/agent_notes/services/state_store.py +249 -0
  147. agent_notes-2.0.4/agent_notes/services/ui.py +419 -0
  148. agent_notes-2.0.4/agent_notes/services/user_config.py +62 -0
  149. agent_notes-2.0.4/agent_notes/services/validation.py +67 -0
  150. agent_notes-2.0.4/agent_notes/state.py +21 -0
  151. agent_notes-2.0.4/agent_notes.egg-info/PKG-INFO +14 -0
  152. agent_notes-2.0.4/agent_notes.egg-info/SOURCES.txt +165 -0
  153. agent_notes-2.0.4/agent_notes.egg-info/dependency_links.txt +1 -0
  154. agent_notes-2.0.4/agent_notes.egg-info/entry_points.txt +2 -0
  155. agent_notes-2.0.4/agent_notes.egg-info/requires.txt +4 -0
  156. agent_notes-2.0.4/agent_notes.egg-info/top_level.txt +7 -0
  157. agent_notes-2.0.4/pyproject.toml +38 -0
  158. agent_notes-2.0.4/setup.cfg +4 -0
  159. agent_notes-2.0.4/tests/conftest.py +20 -0
  160. agent_notes-2.0.4/tests/functional/__init__.py +0 -0
  161. agent_notes-2.0.4/tests/functional/test_build_commands.py +88 -0
  162. agent_notes-2.0.4/tests/functional/test_registries.py +128 -0
  163. agent_notes-2.0.4/tests/integration/__init__.py +0 -0
  164. agent_notes-2.0.4/tests/integration/test_build_output.py +129 -0
  165. agent_notes-2.0.4/tests/plugins/__init__.py +0 -0
  166. agent_notes-2.0.4/tests/plugins/test_agents.py +93 -0
  167. agent_notes-2.0.4/tests/plugins/test_skills.py +77 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 rubakas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-notes
3
+ Version: 2.0.4
4
+ Summary: AI agent configuration manager for Claude Code, OpenCode, and Copilot
5
+ Author: Eugene Naumov
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/rubakas/agent-notes
8
+ Project-URL: Repository, https://github.com/rubakas/agent-notes
9
+ Requires-Python: >=3.9
10
+ License-File: LICENSE
11
+ Requires-Dist: pyyaml>=6.0
12
+ Provides-Extra: dev
13
+ Requires-Dist: pytest>=7.0; extra == "dev"
14
+ Dynamic: license-file
@@ -0,0 +1,493 @@
1
+ # agent-notes
2
+
3
+ AI agent configuration manager for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and [OpenCode](https://github.com/opencode-ai/opencode).
4
+
5
+ Configures a Lead agent (Opus) that orchestrates a team of 18 specialized subagents across three model tiers — so Opus plans and reasons, Sonnet executes, and Haiku explores.
6
+
7
+ ## Quick Start
8
+
9
+ ```bash
10
+ pip install agent-notes
11
+ agent-notes install # interactive wizard guides you through setup
12
+ agent-notes doctor
13
+ ```
14
+
15
+ Update anytime with `pip install --upgrade agent-notes && agent-notes install`.
16
+
17
+ ## What's Included
18
+
19
+ | Component | Description |
20
+ |-----------|-------------|
21
+ | **Skills** | 35 on-demand knowledge modules (Rails, Docker, Git, Kamal, Process) |
22
+ | **Agents** | 18 specialized AI subagents with hierarchical model strategy |
23
+ | **Rules** | Global instructions, code quality, and safety guardrails |
24
+ | **Config** | Global instructions for Claude Code, OpenCode, and GitHub Copilot |
25
+
26
+ ## CLI Reference
27
+
28
+ ```
29
+ agent-notes <command> [options]
30
+ ```
31
+
32
+ | Command | Description |
33
+ |---------|-------------|
34
+ | `install [--local] [--copy]` | Interactive wizard or direct install |
35
+ | `uninstall [--local]` | Remove installed components |
36
+ | `update` | Pull latest, rebuild, reinstall |
37
+ | `doctor [--local] [--fix]` | Check installation health |
38
+ | `info` | Show status and component counts |
39
+ | `list [clis\|models\|roles\|agents\|skills\|rules\|all]` | List engine components or installed |
40
+ | `set role <role> <model> [--cli <cli>]` | Change model for a role (Phase 10+) |
41
+ | `regenerate [--cli <cli>]` | Rebuild files from state.json (Phase 10+) |
42
+ | `validate` | Lint source configuration files |
43
+ | `memory [list\|size\|show\|reset\|export\|import] [name]` | Manage agent memory |
44
+
45
+ ### Supported platforms
46
+
47
+ | Platform | Install target | Config format |
48
+ |----------|---------------|---------------|
49
+ | **Claude Code** | `~/.claude/` | YAML frontmatter + Markdown prompts |
50
+ | **OpenCode** | `~/.config/opencode/` | YAML frontmatter + Markdown prompts |
51
+ | **GitHub Copilot** | `~/.github/` | `copilot-instructions.md` |
52
+
53
+ ### Examples
54
+
55
+ ```bash
56
+ # Interactive install (recommended)
57
+ agent-notes install
58
+
59
+ # Example wizard session:
60
+ #
61
+ # Which CLI do you use?
62
+ # 1) [*] Claude Code
63
+ # 2) [*] OpenCode
64
+ # Enter numbers to toggle (comma-separated), or press enter for defaults.
65
+ # Choice: ← press enter to keep both
66
+ #
67
+ # Step 2/7: Configure model roles
68
+ # Which models should each role use? (claude)
69
+ #
70
+ # orchestrator [claude-opus-4-7] Plans, delegates, synthesizes
71
+ # reasoner [claude-opus-4-7] Complex reasoning, architecture
72
+ # worker [claude-sonnet-4-6] Implements, writes, edits
73
+ # scout [claude-haiku-4-5] Fast search and exploration
74
+ #
75
+ # Enter role=model pairs to change, or press enter to keep defaults.
76
+ # Choice: ← press enter to keep defaults
77
+ #
78
+ # Where to install?
79
+ # 1) * Global (~/.claude, ~/.config/opencode)
80
+ # 2) Local (current project)
81
+ # Choice [1]: ← press enter for global
82
+ #
83
+ # How to install?
84
+ # 1) * Symlink (auto-updates when source changes)
85
+ # 2) Copy (standalone, allows local customization)
86
+ # Choice [1]: ← press enter for symlink
87
+ #
88
+ # Which skills to include?
89
+ # 1) [*] Rails — models, controllers, views, routes, testing (24 skills)
90
+ # 2) [*] Docker — Dockerfile, Compose patterns (4 skills)
91
+ # 3) [*] Kamal — deployment with Kamal (1 skill)
92
+ # 4) [*] Git — commit workflow, conventional commits (1 skill)
93
+ # 5) [*] Process — TDD, refactoring, debugging, planning (5 skills)
94
+ # Choice: ← press enter for all
95
+ #
96
+ # Ready to install:
97
+ # CLI: Claude Code + OpenCode
98
+ # Scope: Global (~/.claude, ~/.config/opencode)
99
+ # Mode: Symlink
100
+ # Skills: Rails (24), Docker (4), Kamal (1), Git (1), Process (5)
101
+ # Agents: 18 (Claude Code) + 19 (OpenCode)
102
+ # Config: CLAUDE.md, AGENTS.md
103
+ # Rules: 2
104
+ # Proceed? [Y/n]: Y
105
+
106
+ # Direct install (scripted, no wizard)
107
+ agent-notes install --local
108
+ agent-notes install --local --copy
109
+
110
+ # Check health and fix issues
111
+ agent-notes doctor --fix
112
+
113
+ # Manage agent memory
114
+ agent-notes memory list
115
+ agent-notes memory vault # show current backend and path
116
+ agent-notes memory index # regenerate Index.md
117
+ agent-notes memory add "Rails enum prefix" \
118
+ "Always use _prefix: true to avoid method name collisions" \
119
+ pattern coder
120
+ ```
121
+
122
+ ## Agent Team
123
+
124
+ Specialized subagents with hierarchical model strategy: **Opus 4.7 decides, Sonnet 4 executes, Haiku 4.5 explores.**
125
+
126
+ ### Agent roster
127
+
128
+ | Agent | Model | Role |
129
+ |-------|-------|------|
130
+ | **lead** | Opus 4.7 | Plans, delegates, reviews. Orchestrator. |
131
+ | **architect** | Opus 4.7 | System architecture, module boundaries, domain models. Read-only. |
132
+ | **debugger** | Opus 4.7 | Bug investigation: reproduces, isolates, identifies root cause. Read-only. |
133
+ | **coder** | Sonnet 4 | Implements features, fixes bugs, edits files. |
134
+ | **reviewer** | Sonnet 4 | Code quality review. Read-only. |
135
+ | **security-auditor** | Sonnet 4 | Security vulnerability analysis. Read-only. |
136
+ | **test-writer** | Sonnet 4 | Writes tests for any framework. |
137
+ | **test-runner** | Sonnet 4 | Diagnoses and fixes failing tests. |
138
+ | **system-auditor** | Sonnet 4 | Codebase health: duplication, N+1, coupling. Read-only. |
139
+ | **database-specialist** | Sonnet 4 | Schema design, indexes, query performance, migrations. Read-only. |
140
+ | **performance-profiler** | Sonnet 4 | Response times, memory, caching, bundle size. Read-only. |
141
+ | **devops** | Sonnet 4 | Docker, CI/CD, deployment configs. |
142
+ | **devil** | Sonnet 4 | Challenges plans to surface hidden risks. Read-only. |
143
+ | **integrations** | Sonnet 4 | Third-party integrations: OAuth, webhooks, payments. |
144
+ | **refactorer** | Sonnet 4 | Improves code structure without changing behavior. |
145
+ | **analyst** | Haiku 4.5 | Requirements analysis: surfaces missing or contradictory requirements. Read-only. |
146
+ | **api-reviewer** | Haiku 4.5 | API design, versioning, error handling, backward compatibility. Read-only. |
147
+ | **tech-writer** | Haiku 4.5 | Documentation: READMEs, API docs, changelogs. |
148
+ | **explorer** | Haiku 4.5 | Fast file discovery and pattern search. Read-only. |
149
+
150
+ ### 4-phase lead workflow
151
+
152
+ ```
153
+ 1. ANALYZE — Lead reviews requirements, explores codebase
154
+ 2. EXECUTE — Delegates to specialized agents (parallel execution)
155
+ 3. REVIEW — Quality check by reviewer agents
156
+ 4. VERIFY — Final validation and integration
157
+ ```
158
+
159
+ ### Team diagram
160
+
161
+ ```
162
+ You (human)
163
+ |
164
+ +-- Simple task ------> Main session (direct work)
165
+ |
166
+ +-- Complex task -----> Lead (Opus 4.7)
167
+ +-- Explorer (Haiku 4.5) quick lookups
168
+ +-- Analyst (Haiku 4.5) requirements analysis
169
+ +-- Architect (Opus 4.7) system design
170
+ +-- Coder (Sonnet 4) implementation
171
+ +-- Refactorer (Sonnet 4) code restructuring
172
+ +-- Reviewer (Sonnet 4) code review
173
+ +-- Security (Sonnet 4) security audit
174
+ +-- Devil (Sonnet 4) risk challenge
175
+ +-- Debugger (Opus 4.7) bug investigation
176
+ +-- Test Writer (Sonnet 4) tests
177
+ +-- Test Runner (Sonnet 4) fix tests
178
+ +-- Auditor (Sonnet 4) codebase health
179
+ +-- DB Specialist (Sonnet 4) schema & queries
180
+ +-- Perf Profiler (Sonnet 4) performance
181
+ +-- API Reviewer (Haiku 4.5) API design
182
+ +-- Integrations (Sonnet 4) third-party APIs
183
+ +-- Tech Writer (Haiku 4.5) documentation
184
+ +-- DevOps (Sonnet 4) infrastructure
185
+ ```
186
+
187
+ ## Architecture: YAML-Driven Extensibility
188
+
189
+ Agent-notes is a **4-layer bounded-context engine** (see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for full details):
190
+
191
+ | Layer | Purpose | Example |
192
+ |-------|---------|---------|
193
+ | **Domain** | Pure dataclasses (Agent, Model, Role, State) | `agent_notes/domain/` |
194
+ | **Registries** | YAML loaders from `data/` → domain types | `agent_notes/registries/` |
195
+ | **Services** | Technical concerns (I/O, rendering, state, install) | `agent_notes/services/` |
196
+ | **Commands** | CLI orchestrators (install, doctor, list, etc.) | `agent_notes/commands/` |
197
+
198
+ **Single source of truth:** `agent_notes/data/` holds all extensible content (CLI, model, role, agent, skill, rule YAMLs).
199
+
200
+ **Zero Python changes to add:**
201
+ - New CLI: drop `data/cli/cursor.yaml`
202
+ - New model: drop `data/models/gpt-5.yaml`
203
+ - New role: drop `data/roles/specialist.yaml`
204
+
205
+ See [docs/ADD_CLI.md](docs/ADD_CLI.md), [docs/ADD_MODEL.md](docs/ADD_MODEL.md), [docs/ADD_ROLE.md](docs/ADD_ROLE.md) for guides.
206
+
207
+
208
+
209
+ ## Project Structure
210
+
211
+ ```
212
+ agent-notes/
213
+ ├── bin/agent-notes # CLI wrapper (entry point)
214
+ ├── docs/
215
+ │ ├── ADD_CLI.md # Guide: add a new CLI backend
216
+ │ ├── ADD_MODEL.md # Guide: add a new AI model
217
+ │ ├── ADD_ROLE.md # Guide: add a new agent role
218
+ │ ├── CLI_CAPABILITIES.md # Source of truth for per-CLI features
219
+ │ └── ENGINE_PLAN.md # Refactor phases and design details
220
+ ├── agent_notes/ # Python implementation
221
+ │ ├── __init__.py, cli.py # Core modules
222
+ │ ├── VERSION # Package version
223
+ │ ├── data/ # Single source of truth
224
+ │ │ ├── cli/ # CLI descriptors
225
+ │ │ │ ├── claude.yaml, opencode.yaml, copilot.yaml
226
+ │ │ │ └── gemini.yaml # (add your own)
227
+ │ │ ├── models/ # Model descriptors
228
+ │ │ │ ├── claude-opus-4-7.yaml, claude-sonnet-4.yaml, ...
229
+ │ │ │ └── gpt-4o.yaml # (add your own)
230
+ │ │ ├── roles/ # Role descriptors
231
+ │ │ │ ├── orchestrator.yaml, worker.yaml, scout.yaml, reasoner.yaml
232
+ │ │ │ └── specialist.yaml # (add your own)
233
+ │ │ ├── templates/frontmatter/
234
+ │ │ │ ├── claude.py, opencode.py
235
+ │ │ │ └── cursor.py # (add if format differs from Claude/OpenCode)
236
+ │ │ ├── agents/
237
+ │ │ │ ├── agents.yaml # Agent metadata + role declarations
238
+ │ │ │ └── *.md # Agent prompt files
239
+ │ │ ├── skills/ # Skill directories
240
+ │ │ ├── rules/ # Code quality rules
241
+ │ │ ├── globals/ # Global config templates
242
+ │ │ └── commands/, scripts/
243
+ │ └── dist/ # Built artifacts (auto-generated, do not edit)
244
+ │ ├── claude/, opencode/
245
+ │ ├── rules/
246
+ │ └── skills/
247
+ ├── scripts/ # Build/utility scripts
248
+ └── tests/ # Test suite
249
+ ```
250
+
251
+ ## Install Methods
252
+
253
+ ### Pip install (recommended)
254
+
255
+ ```bash
256
+ pip install agent-notes
257
+ agent-notes install
258
+ ```
259
+
260
+ ### Git clone (for development or customization)
261
+
262
+ ```bash
263
+ git clone https://github.com/rubakas/agent-notes.git ~/agent-notes
264
+ cd ~/agent-notes && pip install -e .
265
+ agent-notes install
266
+ ```
267
+
268
+ Cloning lets you edit source files in `agent_notes/data/` and rebuild with `agent-notes build`.
269
+
270
+ ## Project-Level Overrides
271
+
272
+ Use `--local --copy` for project-specific customizations. The wizard handles local installs too, while `--local --copy` is for scripted/CI use:
273
+
274
+ ```bash
275
+ agent-notes install --local --copy
276
+ ```
277
+
278
+ Then edit the copied files in `.claude/` or `.opencode/` directories.
279
+
280
+ **Precedence:** Project-level configs replace global versions entirely.
281
+
282
+ ## Skills
283
+
284
+ On-demand knowledge modules loaded mid-conversation.
285
+
286
+ ### Available skills
287
+
288
+ **Rails (24):**
289
+ `rails-models`, `rails-models-advanced`, `rails-controllers`, `rails-controllers-advanced`, `rails-routes`, `rails-concerns`, `rails-views`, `rails-views-advanced`, `rails-view-components`, `rails-view-components-advanced`, `rails-helpers`, `rails-javascript`, `rails-jobs`, `rails-mailers`, `rails-broadcasting`, `rails-migrations`, `rails-active-storage`, `rails-validations`, `rails-testing-controllers`, `rails-testing-models`, `rails-testing-system`, `rails-style`, `rails-initializers`, `rails-lib`
290
+
291
+ **Docker (4):**
292
+ `docker-dockerfile`, `docker-dockerfile-languages`, `docker-compose`, `docker-compose-advanced`
293
+
294
+ **Kamal (1):**
295
+ `rails-kamal`
296
+
297
+ **Git (1):**
298
+ `git` — git workflow, commit chunking, conventional commit messages
299
+
300
+ **Process (5):**
301
+ `tdd`, `refactoring-protocol`, `debugging-protocol`, `code-review`, `brainstorming`
302
+
303
+ ### Usage
304
+
305
+ **Claude Code / OpenCode:**
306
+ ```
307
+ Use the rails-models skill to help with this association
308
+ Load the docker-compose skill for multi-service setup
309
+ ```
310
+
311
+ ## Agent Memory
312
+
313
+ Agents can accumulate knowledge across sessions — patterns they discovered, decisions they made, mistakes to avoid. Three backends are available, chosen during `agent-notes install`.
314
+
315
+ ### Backends
316
+
317
+ | Backend | Storage | Best for |
318
+ |---------|---------|----------|
319
+ | **Local** | `~/.claude/agent-memory/<agent>/` — plain markdown per agent | Simple setup, no extra tools |
320
+ | **Obsidian** | Category vault with YAML frontmatter and `[[wikilinks]]` | Visual browsing, backlinks, Dataview queries |
321
+ | **None** | Disabled — no files written | Stateless or shared machines |
322
+
323
+ ### Obsidian vault setup
324
+
325
+ **Step 1 — Pick Obsidian during install**
326
+
327
+ ```bash
328
+ agent-notes install
329
+ # ...
330
+ # Step 6/7: Memory backend
331
+ # How should agents store memory?
332
+ # 1) * Local markdown files (~/.claude/agent-memory/)
333
+ # 2) Obsidian vault
334
+ # 3) None
335
+ # Choice [1]: 2
336
+ #
337
+ # Detected Obsidian vaults:
338
+ # ~/Documents/Obsidian/Main
339
+ # Vault path [~/Documents/Obsidian/Main]: ← press enter or type your path
340
+ # ✓ Memory: Obsidian (~/Documents/Obsidian/Main)
341
+ ```
342
+
343
+ The wizard auto-detects existing vaults (directories containing `.obsidian/`) in `~/Documents`, `~/Desktop`, and `~`. You can also point to any directory — it doesn't need to be an existing vault.
344
+
345
+ **Step 2 — Initialise the vault**
346
+
347
+ ```bash
348
+ agent-notes memory init
349
+ # Obsidian vault initialised at ~/Documents/Obsidian/Main
350
+ # Folders: Patterns, Decisions, Mistakes, Context, Sessions
351
+ # Index: ~/Documents/Obsidian/Main/Index.md
352
+ ```
353
+
354
+ Then open Obsidian → "Open folder as vault" → select the same path.
355
+
356
+ **Vault structure:**
357
+
358
+ ```
359
+ ~/your-vault/
360
+ ├── Index.md ← entry point; auto-regenerated after every write
361
+ ├── Patterns/ ← reusable solutions and techniques
362
+ ├── Decisions/ ← architectural choices and rationale
363
+ ├── Mistakes/ ← recurring errors to avoid
364
+ ├── Context/ ← per-project background
365
+ └── Sessions/ ← raw session extracts
366
+ ```
367
+
368
+ **Step 3 — Let agents use it**
369
+
370
+ The installed `CLAUDE.md` already points agents to your vault. At the start of a session Claude reads `Index.md`; at the end it can save insights:
371
+
372
+ ```
373
+ Save this to memory as a pattern: always use _prefix: true with Rails enums
374
+ ```
375
+
376
+ Or use the CLI directly:
377
+
378
+ ```bash
379
+ agent-notes memory add "Rails enum prefix" \
380
+ "Always use _prefix: true to avoid method name collisions" \
381
+ --type pattern --agent coder --tags rails,models
382
+ ```
383
+
384
+ **Regenerate the index** after adding files manually in Obsidian:
385
+
386
+ ```bash
387
+ agent-notes memory index
388
+ ```
389
+
390
+ ### Switching backends
391
+
392
+ ```bash
393
+ # See current backend
394
+ agent-notes memory vault
395
+
396
+ # Switch via reconfigure
397
+ agent-notes install --reconfigure
398
+ ```
399
+
400
+ ### Memory commands
401
+
402
+ ```bash
403
+ agent-notes memory init # create folder structure and Index.md
404
+ agent-notes memory list # list all notes (by category or agent)
405
+ agent-notes memory vault # show backend, path, and init status
406
+ agent-notes memory index # regenerate Index.md
407
+ agent-notes memory add <title> <body> [type] [agent] [project] # type: pattern|decision|mistake|context|session
408
+ agent-notes memory show <agent> # show one agent's notes (local backend)
409
+ agent-notes memory reset [agent] # clear memory (confirmation required)
410
+ agent-notes memory export # back up to memory-backup/
411
+ agent-notes memory import # restore from memory-backup/
412
+ ```
413
+
414
+ ### Note format (Obsidian backend)
415
+
416
+ Every note agent-notes writes has YAML frontmatter for filtering and Dataview queries:
417
+
418
+ ```markdown
419
+ ---
420
+ date: 2026-04-28
421
+ type: pattern
422
+ agent: coder
423
+ project: rubakas
424
+ tags: [rails, models]
425
+ ---
426
+
427
+ # Rails Enum Prefix
428
+
429
+ Always use `_prefix: true` with Rails enums to avoid method name collisions with
430
+ existing model methods.
431
+
432
+ ## Links
433
+ - [[2026-04-28-switched-to-jsonb-for-settings]]
434
+ ```
435
+
436
+ Files are named `YYYY-MM-DD-<slug>.md` and placed in the matching category folder. They're plain markdown — edit them freely in Obsidian.
437
+
438
+ ## Development
439
+
440
+ ### Prerequisites
441
+
442
+ - Python 3.9+
443
+ - PyYAML (`pip install pyyaml`)
444
+
445
+ ### Running tests
446
+
447
+ ```bash
448
+ python3 -m pytest tests/
449
+ ```
450
+
451
+ Tests are organized in three directories:
452
+
453
+ | Directory | What it tests |
454
+ |-----------|---------------|
455
+ | `tests/functional/` | Unit tests: registries, build commands, CLI parsing |
456
+ | `tests/integration/` | Real build output: dist structure, agent frontmatter, pricing embedding |
457
+ | `tests/plugins/` | Artifact validation: every skill and agent file checked for correct metadata |
458
+
459
+ ### Building
460
+
461
+ ```bash
462
+ python3 -m agent_notes build
463
+ ```
464
+
465
+ ### Validating
466
+
467
+ ```bash
468
+ python3 -m agent_notes validate
469
+ ```
470
+
471
+ ### Project layout
472
+
473
+ - `agent_notes/data/` — single source of truth (edit here)
474
+ - `agent_notes/dist/` — generated output (do not edit)
475
+ - `agent_notes/` — CLI implementation
476
+ - `tests/` — test suite
477
+ - `scripts/` — dev-only tools (release, etc.)
478
+
479
+ ## Contributing
480
+
481
+ When adding new content:
482
+
483
+ 1. **Edit source files** — all changes go in `agent_notes/data/` directory
484
+ 2. **Run build** — `agent-notes build` to generate platform configs
485
+ 3. **Validate** — `agent-notes validate` before committing
486
+ 4. **Keep it generic** — remove app-specific references
487
+ 5. **Show examples** — include code samples with explanations
488
+ 6. **Stay modular** — each skill should be independently usable
489
+ 7. **Stay concise** — agent prompts under 60 lines
490
+
491
+ ## License
492
+
493
+ MIT
@@ -0,0 +1 @@
1
+ 2.0.4
@@ -0,0 +1 @@
1
+ """agent-notes — AI agent configuration manager."""
@@ -0,0 +1,4 @@
1
+ """Allow running as: python3 -m agent_notes"""
2
+ from agent_notes.cli import main
3
+
4
+ main()