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.
- agent_notes-2.0.4/LICENSE +21 -0
- agent_notes-2.0.4/PKG-INFO +14 -0
- agent_notes-2.0.4/README.md +493 -0
- agent_notes-2.0.4/agent_notes/VERSION +1 -0
- agent_notes-2.0.4/agent_notes/__init__.py +1 -0
- agent_notes-2.0.4/agent_notes/__main__.py +4 -0
- agent_notes-2.0.4/agent_notes/cli.py +348 -0
- agent_notes-2.0.4/agent_notes/commands/__init__.py +27 -0
- agent_notes-2.0.4/agent_notes/commands/_install_helpers.py +262 -0
- agent_notes-2.0.4/agent_notes/commands/build.py +170 -0
- agent_notes-2.0.4/agent_notes/commands/doctor.py +112 -0
- agent_notes-2.0.4/agent_notes/commands/info.py +95 -0
- agent_notes-2.0.4/agent_notes/commands/install.py +99 -0
- agent_notes-2.0.4/agent_notes/commands/list.py +169 -0
- agent_notes-2.0.4/agent_notes/commands/memory.py +430 -0
- agent_notes-2.0.4/agent_notes/commands/regenerate.py +152 -0
- agent_notes-2.0.4/agent_notes/commands/set_role.py +143 -0
- agent_notes-2.0.4/agent_notes/commands/uninstall.py +26 -0
- agent_notes-2.0.4/agent_notes/commands/update.py +169 -0
- agent_notes-2.0.4/agent_notes/commands/validate.py +199 -0
- agent_notes-2.0.4/agent_notes/commands/wizard.py +720 -0
- agent_notes-2.0.4/agent_notes/config.py +154 -0
- agent_notes-2.0.4/agent_notes/data/agents/agents.yaml +352 -0
- agent_notes-2.0.4/agent_notes/data/agents/analyst.md +45 -0
- agent_notes-2.0.4/agent_notes/data/agents/api-reviewer.md +47 -0
- agent_notes-2.0.4/agent_notes/data/agents/architect.md +46 -0
- agent_notes-2.0.4/agent_notes/data/agents/coder.md +28 -0
- agent_notes-2.0.4/agent_notes/data/agents/database-specialist.md +45 -0
- agent_notes-2.0.4/agent_notes/data/agents/debugger.md +47 -0
- agent_notes-2.0.4/agent_notes/data/agents/devil.md +47 -0
- agent_notes-2.0.4/agent_notes/data/agents/devops.md +38 -0
- agent_notes-2.0.4/agent_notes/data/agents/explorer.md +23 -0
- agent_notes-2.0.4/agent_notes/data/agents/integrations.md +44 -0
- agent_notes-2.0.4/agent_notes/data/agents/lead.md +216 -0
- agent_notes-2.0.4/agent_notes/data/agents/performance-profiler.md +44 -0
- agent_notes-2.0.4/agent_notes/data/agents/refactorer.md +48 -0
- agent_notes-2.0.4/agent_notes/data/agents/reviewer.md +44 -0
- agent_notes-2.0.4/agent_notes/data/agents/security-auditor.md +44 -0
- agent_notes-2.0.4/agent_notes/data/agents/system-auditor.md +38 -0
- agent_notes-2.0.4/agent_notes/data/agents/tech-writer.md +32 -0
- agent_notes-2.0.4/agent_notes/data/agents/test-runner.md +36 -0
- agent_notes-2.0.4/agent_notes/data/agents/test-writer.md +39 -0
- agent_notes-2.0.4/agent_notes/data/cli/claude.yaml +25 -0
- agent_notes-2.0.4/agent_notes/data/cli/copilot.yaml +18 -0
- agent_notes-2.0.4/agent_notes/data/cli/opencode.yaml +22 -0
- agent_notes-2.0.4/agent_notes/data/commands/brainstorm.md +8 -0
- agent_notes-2.0.4/agent_notes/data/commands/debug.md +9 -0
- agent_notes-2.0.4/agent_notes/data/commands/review.md +10 -0
- agent_notes-2.0.4/agent_notes/data/global-claude.md +290 -0
- agent_notes-2.0.4/agent_notes/data/global-copilot.md +27 -0
- agent_notes-2.0.4/agent_notes/data/global-opencode.md +40 -0
- agent_notes-2.0.4/agent_notes/data/hooks/session-context.md.tpl +19 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-haiku-4-5.yaml +15 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-1.yaml +16 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-5.yaml +16 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-6.yaml +16 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-opus-4-7.yaml +15 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4-5.yaml +16 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4-6.yaml +15 -0
- agent_notes-2.0.4/agent_notes/data/models/claude-sonnet-4.yaml +16 -0
- agent_notes-2.0.4/agent_notes/data/pricing.yaml +33 -0
- agent_notes-2.0.4/agent_notes/data/roles/orchestrator.yaml +5 -0
- agent_notes-2.0.4/agent_notes/data/roles/reasoner.yaml +5 -0
- agent_notes-2.0.4/agent_notes/data/roles/scout.yaml +5 -0
- agent_notes-2.0.4/agent_notes/data/roles/worker.yaml +5 -0
- agent_notes-2.0.4/agent_notes/data/rules/code-quality.md +9 -0
- agent_notes-2.0.4/agent_notes/data/rules/safety.md +10 -0
- agent_notes-2.0.4/agent_notes/data/scripts/cost-report +211 -0
- agent_notes-2.0.4/agent_notes/data/skills/brainstorming/SKILL.md +57 -0
- agent_notes-2.0.4/agent_notes/data/skills/code-review/SKILL.md +64 -0
- agent_notes-2.0.4/agent_notes/data/skills/debugging-protocol/SKILL.md +51 -0
- agent_notes-2.0.4/agent_notes/data/skills/docker-compose/SKILL.md +318 -0
- agent_notes-2.0.4/agent_notes/data/skills/docker-compose-advanced/SKILL.md +575 -0
- agent_notes-2.0.4/agent_notes/data/skills/docker-dockerfile/SKILL.md +385 -0
- agent_notes-2.0.4/agent_notes/data/skills/docker-dockerfile-languages/SKILL.md +293 -0
- agent_notes-2.0.4/agent_notes/data/skills/git/SKILL.md +87 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-active-storage/SKILL.md +321 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-broadcasting/SKILL.md +374 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-concerns/SKILL.md +806 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-controllers/SKILL.md +510 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-controllers-advanced/SKILL.md +441 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-helpers/SKILL.md +677 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-initializers/SKILL.md +79 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-javascript/SKILL.md +567 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-jobs/SKILL.md +700 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-kamal/SKILL.md +483 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-lib/SKILL.md +101 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-mailers/SKILL.md +321 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-migrations/SKILL.md +268 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-models/SKILL.md +459 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-models-advanced/SKILL.md +398 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-routes/SKILL.md +804 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-style/SKILL.md +538 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-testing-controllers/SKILL.md +343 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-testing-models/SKILL.md +296 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-testing-system/SKILL.md +375 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-validations/SKILL.md +108 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-view-components/SKILL.md +511 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-view-components-advanced/SKILL.md +376 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-views/SKILL.md +413 -0
- agent_notes-2.0.4/agent_notes/data/skills/rails-views-advanced/SKILL.md +450 -0
- agent_notes-2.0.4/agent_notes/data/skills/refactoring-protocol/SKILL.md +64 -0
- agent_notes-2.0.4/agent_notes/data/skills/tdd/SKILL.md +57 -0
- agent_notes-2.0.4/agent_notes/data/templates/__init__.py +1 -0
- agent_notes-2.0.4/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__init__.py +1 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/cursor.cpython-314.pyc +0 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/claude.py +44 -0
- agent_notes-2.0.4/agent_notes/data/templates/frontmatter/opencode.py +104 -0
- agent_notes-2.0.4/agent_notes/doctor_checks.py +189 -0
- agent_notes-2.0.4/agent_notes/domain/__init__.py +17 -0
- agent_notes-2.0.4/agent_notes/domain/agent.py +34 -0
- agent_notes-2.0.4/agent_notes/domain/cli_backend.py +40 -0
- agent_notes-2.0.4/agent_notes/domain/diagnostics.py +29 -0
- agent_notes-2.0.4/agent_notes/domain/diff.py +44 -0
- agent_notes-2.0.4/agent_notes/domain/model.py +27 -0
- agent_notes-2.0.4/agent_notes/domain/role.py +13 -0
- agent_notes-2.0.4/agent_notes/domain/rule.py +13 -0
- agent_notes-2.0.4/agent_notes/domain/skill.py +15 -0
- agent_notes-2.0.4/agent_notes/domain/state.py +46 -0
- agent_notes-2.0.4/agent_notes/install_state.py +11 -0
- agent_notes-2.0.4/agent_notes/registries/__init__.py +16 -0
- agent_notes-2.0.4/agent_notes/registries/_base.py +46 -0
- agent_notes-2.0.4/agent_notes/registries/agent_registry.py +107 -0
- agent_notes-2.0.4/agent_notes/registries/cli_registry.py +89 -0
- agent_notes-2.0.4/agent_notes/registries/model_registry.py +85 -0
- agent_notes-2.0.4/agent_notes/registries/role_registry.py +64 -0
- agent_notes-2.0.4/agent_notes/registries/rule_registry.py +80 -0
- agent_notes-2.0.4/agent_notes/registries/skill_registry.py +141 -0
- agent_notes-2.0.4/agent_notes/services/__init__.py +8 -0
- agent_notes-2.0.4/agent_notes/services/diagnostics/__init__.py +47 -0
- agent_notes-2.0.4/agent_notes/services/diagnostics/_checks.py +272 -0
- agent_notes-2.0.4/agent_notes/services/diagnostics/_display.py +346 -0
- agent_notes-2.0.4/agent_notes/services/diagnostics/_fix.py +169 -0
- agent_notes-2.0.4/agent_notes/services/diff.py +349 -0
- agent_notes-2.0.4/agent_notes/services/fs.py +195 -0
- agent_notes-2.0.4/agent_notes/services/install_state_builder.py +210 -0
- agent_notes-2.0.4/agent_notes/services/installer.py +293 -0
- agent_notes-2.0.4/agent_notes/services/memory_backend.py +155 -0
- agent_notes-2.0.4/agent_notes/services/rendering.py +329 -0
- agent_notes-2.0.4/agent_notes/services/session_context.py +23 -0
- agent_notes-2.0.4/agent_notes/services/settings_writer.py +79 -0
- agent_notes-2.0.4/agent_notes/services/state_store.py +249 -0
- agent_notes-2.0.4/agent_notes/services/ui.py +419 -0
- agent_notes-2.0.4/agent_notes/services/user_config.py +62 -0
- agent_notes-2.0.4/agent_notes/services/validation.py +67 -0
- agent_notes-2.0.4/agent_notes/state.py +21 -0
- agent_notes-2.0.4/agent_notes.egg-info/PKG-INFO +14 -0
- agent_notes-2.0.4/agent_notes.egg-info/SOURCES.txt +165 -0
- agent_notes-2.0.4/agent_notes.egg-info/dependency_links.txt +1 -0
- agent_notes-2.0.4/agent_notes.egg-info/entry_points.txt +2 -0
- agent_notes-2.0.4/agent_notes.egg-info/requires.txt +4 -0
- agent_notes-2.0.4/agent_notes.egg-info/top_level.txt +7 -0
- agent_notes-2.0.4/pyproject.toml +38 -0
- agent_notes-2.0.4/setup.cfg +4 -0
- agent_notes-2.0.4/tests/conftest.py +20 -0
- agent_notes-2.0.4/tests/functional/__init__.py +0 -0
- agent_notes-2.0.4/tests/functional/test_build_commands.py +88 -0
- agent_notes-2.0.4/tests/functional/test_registries.py +128 -0
- agent_notes-2.0.4/tests/integration/__init__.py +0 -0
- agent_notes-2.0.4/tests/integration/test_build_output.py +129 -0
- agent_notes-2.0.4/tests/plugins/__init__.py +0 -0
- agent_notes-2.0.4/tests/plugins/test_agents.py +93 -0
- 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."""
|