agent-notes 2.32.0__tar.gz → 2.33.1__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.32.0 → agent_notes-2.33.1}/PKG-INFO +106 -14
- {agent_notes-2.32.0 → agent_notes-2.33.1}/README.md +102 -10
- agent_notes-2.33.1/agent_notes/VERSION +1 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/cli.py +56 -16
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/_install_helpers.py +1 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/build.py +47 -20
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/config.py +207 -25
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/doctor.py +36 -4
- agent_notes-2.33.1/agent_notes/commands/hook/__init__.py +147 -0
- agent_notes-2.32.0/agent_notes/commands/hook.py → agent_notes-2.33.1/agent_notes/commands/hook/_guard.py +152 -213
- agent_notes-2.33.1/agent_notes/commands/hook/_memory.py +35 -0
- agent_notes-2.33.1/agent_notes/commands/hook/_session.py +30 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/install.py +17 -2
- agent_notes-2.33.1/agent_notes/commands/memory/__init__.py +15 -0
- agent_notes-2.33.1/agent_notes/commands/models.py +210 -0
- agent_notes-2.33.1/agent_notes/commands/plugins.py +66 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/regenerate.py +7 -4
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/validate.py +13 -4
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/__init__.py +213 -67
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/_common.py +10 -0
- agent_notes-2.33.1/agent_notes/commands/wizard/capabilities.py +125 -0
- agent_notes-2.33.1/agent_notes/commands/wizard/capability_registry.py +54 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/execute.py +119 -39
- agent_notes-2.33.1/agent_notes/commands/wizard/orchestrator.py +152 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/config.py +2 -7
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/constants.py +0 -11
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_claude_backend.py +1 -1
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_opencode_backend.py +1 -1
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_pricing.py +0 -9
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/cost_report.py +5 -49
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/agents.yaml +0 -20
- agent_notes-2.33.1/agent_notes/data/agents/lead.md +32 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/guardrails.md +2 -2
- agent_notes-2.33.1/agent_notes/data/agents/shared/skeptical_verification.md +7 -0
- agent_notes-2.33.1/agent_notes/data/catalog/rules.yaml +86 -0
- agent_notes-2.33.1/agent_notes/data/catalog/seed.json +84 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/cli/claude.yaml +1 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/cli/codex.yaml +1 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/cli/copilot.yaml +2 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/cli/opencode.yaml +2 -2
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/global-claude.md +2 -29
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/plugin/claude.yaml +0 -3
- agent_notes-2.33.1/agent_notes/data/plugins/cost-report/plugin.yaml +8 -0
- agent_notes-2.33.1/agent_notes/data/pricing.yaml +60 -0
- agent_notes-2.33.1/agent_notes/data/providers/anthropic.yaml +3 -0
- agent_notes-2.33.1/agent_notes/data/providers/openai.yaml +3 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/roles/orchestrator.yaml +3 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/roles/reasoner.yaml +3 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/roles/scout.yaml +3 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/roles/worker.yaml +3 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/rules/safety.md +1 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/code-review/SKILL.md +1 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/ingest/SKILL.md +16 -84
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/migrate-memory/SKILL.md +5 -72
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/obsidian-memory/SKILL.md +3 -3
- agent_notes-2.33.1/agent_notes/data/templates/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/base.cpython-314.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-312.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-312.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-312.pyc +0 -0
- agent_notes-2.33.1/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/base.py +9 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/claude.py +4 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/codex.py +5 -11
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/opencode.py +9 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/agent.py +2 -1
- agent_notes-2.33.1/agent_notes/domain/capability.py +35 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/cli_backend.py +1 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/model.py +2 -2
- agent_notes-2.33.1/agent_notes/domain/plugin.py +34 -0
- agent_notes-2.33.1/agent_notes/domain/provider.py +11 -0
- agent_notes-2.33.1/agent_notes/domain/role.py +20 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/skill.py +2 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/state.py +4 -2
- agent_notes-2.33.1/agent_notes/memory/__init__.py +1 -0
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/__init__.py +2 -25
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/_common.py +10 -15
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/migrate.py +2 -2
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/notes.py +9 -78
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/reset.py +0 -36
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/transfer.py +0 -8
- {agent_notes-2.32.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/vault.py +5 -25
- agent_notes-2.33.1/agent_notes/memory/install.py +127 -0
- agent_notes-2.33.1/agent_notes/memory/instructions.py +130 -0
- {agent_notes-2.32.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/local_backend.py +1 -1
- {agent_notes-2.32.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_backend.py +33 -14
- {agent_notes-2.32.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/obsidian_backend.py +99 -21
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/agent_registry.py +9 -2
- agent_notes-2.33.1/agent_notes/registries/catalog_loader.py +223 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/cli_registry.py +7 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/model_registry.py +38 -12
- agent_notes-2.33.1/agent_notes/registries/plugin_registry.py +107 -0
- agent_notes-2.33.1/agent_notes/registries/provider_registry.py +62 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/role_registry.py +3 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/skill_registry.py +21 -10
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_checks.py +187 -24
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/fs.py +6 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/install_executor.py +10 -14
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/install_plan.py +15 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/install_state_builder.py +9 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/installer.py +75 -64
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/model_resolver.py +46 -41
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/rendering.py +211 -145
- agent_notes-2.33.1/agent_notes/services/stability.py +53 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/state_store.py +7 -2
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/user_config.py +11 -2
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/PKG-INFO +106 -14
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/SOURCES.txt +101 -58
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/requires.txt +1 -3
- {agent_notes-2.32.0 → agent_notes-2.33.1}/pyproject.toml +5 -5
- agent_notes-2.33.1/tests/conftest.py +68 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_config_command.py +64 -1
- agent_notes-2.33.1/tests/functional/commands/test_plugins_cli.py +294 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_regenerate_command.py +45 -0
- agent_notes-2.33.1/tests/functional/commands/test_stability_cli.py +29 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_full_hooks.py +9 -3
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_wizard_happy_path.py +103 -9
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/test_skills.py +1 -1
- agent_notes-2.33.1/tests/unit/commands/test_capability_registry.py +53 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_cost_report_subcommand.py +20 -18
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_guard_credentials.py +232 -2
- agent_notes-2.33.1/tests/unit/commands/test_hook_constants.py +80 -0
- agent_notes-2.33.1/tests/unit/commands/test_install_profile_rerender.py +53 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_add_description.py +5 -5
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_imports.py +13 -27
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_migrate.py +1 -1
- agent_notes-2.33.1/tests/unit/commands/test_models_command.py +246 -0
- agent_notes-2.33.1/tests/unit/commands/test_plugins_command.py +264 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_precompact_memory_bridge.py +3 -13
- agent_notes-2.33.1/tests/unit/commands/test_toggle_capabilities.py +32 -0
- agent_notes-2.33.1/tests/unit/commands/test_validate_line_limit.py +13 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_accept_all_models.py +59 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_config.py +52 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_step.py +44 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_confirm_build_order.py +158 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_effort_selection.py +61 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_install_summary_display.py +71 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_memory_path_validation.py +21 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_orchestrator_skip.py +3 -3
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_preflight.py +112 -11
- agent_notes-2.33.1/tests/unit/commands/test_wizard_provider_step.py +50 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_role_model_default.py +198 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_role_ordering.py +137 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_steps.py +53 -38
- agent_notes-2.33.1/tests/unit/commands/test_wizard_toggle_step.py +19 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_total_steps.py +51 -0
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cache_write_pricing.py +9 -9
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report.py +2 -8
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report_scoping.py +28 -30
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_formatting_tty.py +4 -4
- agent_notes-2.33.1/tests/unit/cost/test_hook_constant.py +30 -0
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_opencode_backend_connection.py +2 -2
- agent_notes-2.33.1/tests/unit/cost/test_opencode_backend_pricing.py +310 -0
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_time_aggregation.py +7 -7
- agent_notes-2.33.1/tests/unit/domain/test_capability.py +19 -0
- agent_notes-2.33.1/tests/unit/memory/test_stability_memory.py +25 -0
- agent_notes-2.33.1/tests/unit/registries/test_catalog_equivalence.py +315 -0
- agent_notes-2.33.1/tests/unit/registries/test_plugin_equivalence.py +105 -0
- agent_notes-2.33.1/tests/unit/registries/test_plugin_registry.py +56 -0
- agent_notes-2.33.1/tests/unit/registries/test_provider_registry.py +57 -0
- agent_notes-2.33.1/tests/unit/registries/test_registries.py +243 -0
- agent_notes-2.33.1/tests/unit/registries/test_stability_filtering.py +60 -0
- agent_notes-2.33.1/tests/unit/registries/test_stability_parsing.py +98 -0
- agent_notes-2.33.1/tests/unit/registries/test_stability_skills_agents.py +30 -0
- agent_notes-2.33.1/tests/unit/scripts/__init__.py +0 -0
- agent_notes-2.33.1/tests/unit/services/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_build_functions.py +37 -0
- agent_notes-2.33.1/tests/unit/services/test_cost_report_plugin_migration.py +39 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_fs.py +35 -0
- agent_notes-2.33.1/tests/unit/services/test_generate_agent_files_pins.py +226 -0
- agent_notes-2.33.1/tests/unit/services/test_generate_agent_files_stability.py +48 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_credential_guard.py +1 -1
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hooks.py +21 -16
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_plan.py +59 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_precompact_hook.py +0 -14
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_local_backend.py +2 -2
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend.py +2 -2
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend_io.py +15 -15
- agent_notes-2.33.1/tests/unit/services/test_memory_config_migration.py +47 -0
- agent_notes-2.33.1/tests/unit/services/test_memory_instructions.py +100 -0
- agent_notes-2.33.1/tests/unit/services/test_memory_router.py +78 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_model_resolver_characterization.py +177 -64
- agent_notes-2.33.1/tests/unit/services/test_obsidian_strategy.py +216 -0
- agent_notes-2.33.1/tests/unit/services/test_plugin_install.py +165 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_rendering_includes.py +4 -5
- agent_notes-2.33.1/tests/unit/services/test_resolve_effort.py +383 -0
- agent_notes-2.33.1/tests/unit/services/test_stability.py +34 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_state_store.py +45 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_user_config_cost_report.py +53 -32
- agent_notes-2.33.1/tests/unit/services/test_user_config_xdg.py +58 -0
- agent_notes-2.33.1/tests/unit/services/test_wiki_migration_error.py +114 -0
- agent_notes-2.33.1/tests/unit/templates/__init__.py +0 -0
- agent_notes-2.33.1/tests/unit/templates/test_claude_frontmatter.py +46 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/templates/test_codex_frontmatter.py +28 -9
- agent_notes-2.33.1/tests/unit/templates/test_opencode_frontmatter.py +33 -0
- agent_notes-2.33.1/tests/unit/test_cache_isolation.py +107 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/test_memory_dir_for_backend.py +2 -30
- agent_notes-2.32.0/agent_notes/VERSION +0 -1
- agent_notes-2.32.0/agent_notes/commands/memory/wiki.py +0 -153
- agent_notes-2.32.0/agent_notes/commands/wizard/orchestrator.py +0 -100
- agent_notes-2.32.0/agent_notes/data/agents/lead.md +0 -47
- agent_notes-2.32.0/agent_notes/data/agents/shared/wiki_compile.md +0 -18
- agent_notes-2.32.0/agent_notes/data/agents/wiki-compiler.md +0 -121
- agent_notes-2.32.0/agent_notes/data/models/claude-haiku-4-5.yaml +0 -15
- agent_notes-2.32.0/agent_notes/data/models/claude-opus-4-1.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/claude-opus-4-5.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/claude-opus-4-6.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/claude-opus-4-7.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/claude-opus-4-8.yaml +0 -15
- agent_notes-2.32.0/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -15
- agent_notes-2.32.0/agent_notes/data/models/claude-sonnet-4.yaml +0 -16
- agent_notes-2.32.0/agent_notes/data/models/gpt-5-4-mini.yaml +0 -14
- agent_notes-2.32.0/agent_notes/data/models/gpt-5-4.yaml +0 -14
- agent_notes-2.32.0/agent_notes/data/models/gpt-5-5.yaml +0 -14
- agent_notes-2.32.0/agent_notes/data/pricing.yaml +0 -35
- agent_notes-2.32.0/agent_notes/data/skills/brainstorming/SKILL.md +0 -57
- agent_notes-2.32.0/agent_notes/data/skills/tdd/SKILL.md +0 -37
- agent_notes-2.32.0/agent_notes/data/skills/tdd/mocking.md +0 -59
- agent_notes-2.32.0/agent_notes/data/skills/tdd/tests.md +0 -77
- agent_notes-2.32.0/agent_notes/data/skills/writing-great-skills/GLOSSARY.md +0 -201
- agent_notes-2.32.0/agent_notes/data/skills/writing-great-skills/SKILL.md +0 -84
- agent_notes-2.32.0/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- agent_notes-2.32.0/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- agent_notes-2.32.0/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- agent_notes-2.32.0/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- agent_notes-2.32.0/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- agent_notes-2.32.0/agent_notes/doctor_checks.py +0 -192
- agent_notes-2.32.0/agent_notes/domain/role.py +0 -13
- agent_notes-2.32.0/agent_notes/services/wiki/__init__.py +0 -25
- agent_notes-2.32.0/agent_notes/services/wiki/_wiki_utils.py +0 -196
- agent_notes-2.32.0/agent_notes/services/wiki/wiki_index.py +0 -171
- agent_notes-2.32.0/agent_notes/services/wiki/wiki_ingest.py +0 -382
- agent_notes-2.32.0/agent_notes/services/wiki/wiki_lint.py +0 -176
- agent_notes-2.32.0/agent_notes/services/wiki/wiki_query.py +0 -103
- agent_notes-2.32.0/agent_notes/services/wiki/wiki_storage.py +0 -125
- agent_notes-2.32.0/agent_notes/services/wiki_backend.py +0 -3
- agent_notes-2.32.0/tests/conftest.py +0 -35
- agent_notes-2.32.0/tests/unit/commands/test_wizard_role_model_default.py +0 -108
- agent_notes-2.32.0/tests/unit/registries/test_registries.py +0 -167
- agent_notes-2.32.0/tests/unit/scripts/test_opencode_backend_pricing.py +0 -100
- agent_notes-2.32.0/tests/unit/services/test_memory_router.py +0 -100
- agent_notes-2.32.0/tests/unit/services/test_wiki_atomic_write.py +0 -73
- agent_notes-2.32.0/tests/unit/services/test_wiki_backend.py +0 -1361
- agent_notes-2.32.0/tests/unit/services/test_wiki_imports.py +0 -222
- {agent_notes-2.32.0 → agent_notes-2.33.1}/LICENSE +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/__main__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/info.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/list.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/set_role.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/uninstall.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/cost_report.py +0 -0
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/__init__.py +0 -0
- {agent_notes-2.32.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_formatting.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/analyst.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/api-reviewer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/architect.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/coder.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/database-specialist.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/debugger.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/devil.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/devops.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/explorer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/integrations.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/performance-profiler.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/refactorer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/reviewer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/security-auditor.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/execution.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/hard_limits.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/phase0.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/pipelines.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/review.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/verification.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/system-auditor.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/tech-writer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-runner.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-writer.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/commands/brainstorm.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/commands/debug.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/commands/review.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/global-codex.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/global-copilot.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/global-opencode.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/hooks/session-context.md.tpl +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode-index.js.template +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode.yaml +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/rules/code-quality.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/rules/no-ai-attribution.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/chrome-test/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DEEPENING.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DESIGN-IT-TWICE.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/compose.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/dockerfile.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/ADR-FORMAT.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/CONTEXT-FORMAT.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/git/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/grilling/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/handoff/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/HTML-REPORT.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/LOGIC.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/UI.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/controllers.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/frontend.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/infra.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/models.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/testing.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/views.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/refactoring-protocol/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/research/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/rsi/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/domain.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-github.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-gitlab.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-local.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/triage-labels.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-spec/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-tickets/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/AGENT-BRIEF.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/OUT-OF-SCOPE.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/skills/wayfinder/SKILL.md +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/diagnostics.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/diff.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/domain/rule.py +0 -0
- {agent_notes-2.32.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_router.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/_base.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/registries/rule_registry.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/_memory_utils.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/counts.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/credentials.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_display.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_fix.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/diff.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/migrations/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/session_context.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/settings_writer.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/ui.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes/services/validation.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/dependency_links.txt +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/entry_points.txt +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/agent_notes.egg-info/top_level.txt +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/setup.cfg +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_doctor_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_info_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_roundtrip.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_list_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_path_filter.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/memory/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_add_local_backend.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_command.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/scripts/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/functional/scripts/test_release_script.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/build_output/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/build_output/test_build_output.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/install/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/install/test_install_methods.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/claude/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/claude/test_agents.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/codex/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/plugins/codex/test_agents.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_count_agents.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_info.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_imports.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/commands/wizard/test_cost_report_step.py +0 -0
- {agent_notes-2.32.0/tests/unit/registries → agent_notes-2.33.1/tests/unit/cost}/__init__.py +0 -0
- {agent_notes-2.32.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/domain}/__init__.py +0 -0
- {agent_notes-2.32.0/tests/unit/services → agent_notes-2.33.1/tests/unit/memory}/__init__.py +0 -0
- {agent_notes-2.32.0/tests/unit/templates → agent_notes-2.33.1/tests/unit/registries}/__init__.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/registries/test_cli_registry.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_credential_filter.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_credentials.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_codex.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hook_quoting.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_session_context.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_settings_writer.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_skill_filtering.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/services/test_validation.py +0 -0
- {agent_notes-2.32.0 → agent_notes-2.33.1}/tests/unit/test_import_health.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-notes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.33.1
|
|
4
4
|
Summary: AI agent configuration manager for Claude Code, OpenCode, and Copilot
|
|
5
5
|
Author-email: Eugene Naumov <min.verkligheten@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -13,21 +13,21 @@ Classifier: Development Status :: 4 - Beta
|
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Classifier: Topic :: Software Development :: Code Generators
|
|
20
20
|
Classifier: Topic :: Utilities
|
|
21
21
|
Classifier: Environment :: Console
|
|
22
|
-
Requires-Python: >=3.
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
Requires-Dist: pyyaml>=6.0
|
|
26
|
-
Requires-Dist: tomli>=1.1.0; python_version < "3.11"
|
|
27
26
|
Requires-Dist: tomli-w>=1.0.0
|
|
28
27
|
Provides-Extra: dev
|
|
29
28
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
30
29
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
30
|
+
Requires-Dist: twine>=5.0; extra == "dev"
|
|
31
31
|
Dynamic: license-file
|
|
32
32
|
|
|
33
33
|
# agent-notes
|
|
@@ -37,14 +37,16 @@ AI agent configuration manager for Claude Code and OpenCode — orchestrates a t
|
|
|
37
37
|
## Quick Start
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
40
|
+
pipx install agent-notes
|
|
41
41
|
agent-notes install # interactive wizard guides you through setup
|
|
42
42
|
agent-notes doctor
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
> No `pipx`? Use `uv tool install agent-notes` instead, or see **Troubleshooting: externally-managed-environment** below.
|
|
46
|
+
|
|
45
47
|
**What's Included**
|
|
46
48
|
- 19 specialized AI subagents (Opus reasons, Sonnet executes, Haiku explores)
|
|
47
|
-
-
|
|
49
|
+
- 25 on-demand skills (Rails, Docker, Git, Kamal, Process)
|
|
48
50
|
- Global rules and guardrails (including a ban on AI self-attribution in commits/PRs)
|
|
49
51
|
- Agent memory with 3 storage options (Local, Obsidian, Wiki)
|
|
50
52
|
- Configuration for Claude Code, OpenCode, and GitHub Copilot
|
|
@@ -63,6 +65,13 @@ pipx install agent-notes
|
|
|
63
65
|
agent-notes install
|
|
64
66
|
```
|
|
65
67
|
|
|
68
|
+
**uv tool (lightweight alternative to pipx):**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv tool install agent-notes
|
|
72
|
+
agent-notes install
|
|
73
|
+
```
|
|
74
|
+
|
|
66
75
|
**venv + pip (if you prefer to manage your own environment):**
|
|
67
76
|
|
|
68
77
|
```bash
|
|
@@ -96,6 +105,7 @@ agent-notes uninstall && pipx uninstall agent-notes && pipx install agent-notes
|
|
|
96
105
|
|
|
97
106
|
With venv:
|
|
98
107
|
```bash
|
|
108
|
+
source .venv/bin/activate
|
|
99
109
|
agent-notes uninstall && pip uninstall agent-notes && pip install agent-notes && agent-notes install
|
|
100
110
|
```
|
|
101
111
|
|
|
@@ -119,6 +129,38 @@ To produce a release artifact (wheel for distribution), use `python -m build` +
|
|
|
119
129
|
|
|
120
130
|
The plugin runs a `session.start` hook that surfaces agent-notes context to the CLI session. It does **not** include the full `agent-notes` CLI (wizard, doctor, config, memory, etc.). For those, use install method 1 or 2.
|
|
121
131
|
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
**Note on two meanings of "plugin":** This distribution plugin (the `.claude-plugin/` marketplace artifact) is distinct from **agent-notes plugins** — an internal toggleable subsystem documented below. See [Plugins](#plugins) to tell them apart.
|
|
135
|
+
|
|
136
|
+
### Plugins (toggleable subsystems)
|
|
137
|
+
|
|
138
|
+
Agent-notes includes toggleable subsystems (plugins) that can be enabled or disabled post-install. Currently, only **cost-report** is available as a plugin.
|
|
139
|
+
|
|
140
|
+
**List available plugins:**
|
|
141
|
+
```bash
|
|
142
|
+
agent-notes plugins list
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Example output:
|
|
146
|
+
```
|
|
147
|
+
cost-report [off] Emit a per-session token cost report at the Stop hook
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Enable or disable a plugin:**
|
|
151
|
+
```bash
|
|
152
|
+
agent-notes plugins enable cost-report # Enable cost-report
|
|
153
|
+
agent-notes plugins disable cost-report # Disable cost-report
|
|
154
|
+
agent-notes install # Apply changes
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Show plugin details:**
|
|
158
|
+
```bash
|
|
159
|
+
agent-notes plugins info cost-report
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
After enabling or disabling a plugin, run `agent-notes install` to apply the changes. For details, see `docs/WRITING_A_PLUGIN.md`.
|
|
163
|
+
|
|
122
164
|
### API keys
|
|
123
165
|
|
|
124
166
|
Provider API keys live in `~/.agent-notes/credentials.toml` (mode 0600, never committed). Add or update via:
|
|
@@ -135,6 +177,46 @@ agent-notes config provider openrouter # prints "configured" or "no key"
|
|
|
135
177
|
|
|
136
178
|
</details>
|
|
137
179
|
|
|
180
|
+
### Troubleshooting: externally-managed-environment
|
|
181
|
+
|
|
182
|
+
On Arch, Debian, Ubuntu, and other distributions that mark the system Python as externally-managed (PEP 668), you may see an error like:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
error: externally-managed-environment
|
|
186
|
+
|
|
187
|
+
× This environment is externally managed
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
This error occurs because `pip` refuses to install into the system Python. **Solution:** use an isolated package manager instead:
|
|
191
|
+
|
|
192
|
+
1. **Recommended — pipx:**
|
|
193
|
+
```bash
|
|
194
|
+
pipx install agent-notes
|
|
195
|
+
agent-notes install
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
2. **Alternative — uv tool:**
|
|
199
|
+
```bash
|
|
200
|
+
uv tool install agent-notes
|
|
201
|
+
agent-notes install
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
3. **Alternative — Create a venv first:**
|
|
205
|
+
```bash
|
|
206
|
+
python -m venv .venv && source .venv/bin/activate
|
|
207
|
+
pip install agent-notes
|
|
208
|
+
agent-notes install
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Last resort only** (discouraged — system packages may conflict):
|
|
212
|
+
```bash
|
|
213
|
+
pip install --user agent-notes
|
|
214
|
+
# or
|
|
215
|
+
pip install --break-system-packages agent-notes
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
138
220
|
<details>
|
|
139
221
|
<summary>Uninstall</summary>
|
|
140
222
|
|
|
@@ -170,7 +252,7 @@ If you configured agent-notes to access your memory vault (Obsidian or local), t
|
|
|
170
252
|
<details>
|
|
171
253
|
<summary>Agent Team</summary>
|
|
172
254
|
|
|
173
|
-
Specialized subagents with hierarchical model strategy: **Opus 4.
|
|
255
|
+
Specialized subagents with hierarchical model strategy: **Opus 4.8 reasons (high effort), Sonnet 5 executes (medium effort), Haiku 4.5 scouts (low effort).**
|
|
174
256
|
|
|
175
257
|
| Agent | Role | Model Tier | Purpose |
|
|
176
258
|
|---|---|---|---|
|
|
@@ -194,7 +276,7 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
194
276
|
| analyst | scout | haiku | Requirements translation, acceptance criteria |
|
|
195
277
|
| tech-writer | scout | haiku | READMEs, API docs, changelogs |
|
|
196
278
|
|
|
197
|
-
**4 roles, 19 agents, 3 model tiers.** The tiered model strategy optimizes cost: Opus reasons ($
|
|
279
|
+
**4 roles, 19 agents, 3 model tiers.** The tiered model strategy optimizes cost: Opus reasons ($5/$25 per 1M tokens in/out), Sonnet executes ($3/$15), Haiku scouts ($1/$5). A premium `fable` tier ($10/$50) is available for explicit pinning, but no role defaults to it.
|
|
198
280
|
|
|
199
281
|
### Delegation rules
|
|
200
282
|
|
|
@@ -216,6 +298,18 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
216
298
|
- **tech-writer** — Documentation, READMEs, API docs
|
|
217
299
|
- **devil** — Challenges assumptions and plans
|
|
218
300
|
|
|
301
|
+
### Reconfiguring roles, models, and effort
|
|
302
|
+
|
|
303
|
+
During `agent-notes install`, wizard step 2 asks you to pick a model per role, and — for models served by a provider with a known effort vocabulary (currently `anthropic`, `openai`) — a follow-up effort prompt, pre-selected to the role's typical effort when that value is valid for the chosen provider. Providers with no effort registry entry (`github-copilot`, `openrouter`, `google`, `moonshot`) skip the effort prompt entirely.
|
|
304
|
+
|
|
305
|
+
To change these after install:
|
|
306
|
+
```bash
|
|
307
|
+
agent-notes config role-model [--cli <cli>] <role> <model> # e.g. role-model worker claude-sonnet-5
|
|
308
|
+
agent-notes config role-effort [--cli <cli>] <role> <effort> # e.g. role-effort worker high
|
|
309
|
+
agent-notes config wizard # interactive menu for both
|
|
310
|
+
```
|
|
311
|
+
`role-effort` validates the effort against the role's currently-assigned model's provider — an invalid value prints that provider's name and its valid effort list. There's no cross-provider mapping: each provider (anthropic, openai) has its own independent effort vocabulary and default.
|
|
312
|
+
|
|
219
313
|
</details>
|
|
220
314
|
|
|
221
315
|
---
|
|
@@ -282,7 +376,7 @@ agent-notes memory lint # health-check
|
|
|
282
376
|
<details>
|
|
283
377
|
<summary>Skills</summary>
|
|
284
378
|
|
|
285
|
-
|
|
379
|
+
25 on-demand knowledge modules across Rails, Docker, Kamal, Git, and Process. Run `agent-notes list skills` for the current list, or browse `agent_notes/data/skills/`. For additional workflows (brainstorming, test-driven development, writing skills), see the complementary [Superpowers](https://github.com/obra/superpowers) plugin.
|
|
286
380
|
|
|
287
381
|
The session context hook auto-generates a skill index from SKILL.md frontmatter at install time, so agents always know what skills are available without loading full skill content. This keeps context overhead low while maintaining skill discoverability.
|
|
288
382
|
|
|
@@ -299,14 +393,13 @@ Load the docker-compose skill for multi-service setup
|
|
|
299
393
|
|---|---|---|
|
|
300
394
|
| Misalignment | Claude starts building before the problem is resolved | `/grill-me`, `/grilling`, `/grill-with-docs` |
|
|
301
395
|
| Vague scope | Work starts without a spec or ticketed breakdown | `/to-spec`, `/to-tickets`, `/wayfinder`, `/triage` |
|
|
302
|
-
| Broken code | Claude codes without a feedback loop or evidence trail | `/
|
|
396
|
+
| Broken code | Claude codes without a feedback loop or evidence trail | `/diagnosing-bugs` |
|
|
303
397
|
| Ball of mud | Architecture drifts; modules grow shallow and tangled | `/improve-codebase-architecture`, `/codebase-design`, `/domain-modeling` |
|
|
304
398
|
|
|
305
399
|
**Skill descriptions:**
|
|
306
400
|
|
|
307
401
|
- `/grill-me`, `/grilling` — Interview the user relentlessly until the plan is fully resolved before touching code
|
|
308
402
|
- `/grill-with-docs` — Same, but cross-references CONTEXT.md and ADRs and updates them inline
|
|
309
|
-
- `/tdd` — RED-GREEN-REFACTOR with tracer-bullet vertical slices; integration-first testing
|
|
310
403
|
- `/diagnosing-bugs` — Diagnosis loop for hard bugs and performance regressions (build a feedback loop first)
|
|
311
404
|
- `/improve-codebase-architecture` — Scan for deepening opportunities, present a visual HTML report, then grill the chosen one
|
|
312
405
|
- `/codebase-design` — Shared vocabulary for designing deep modules and choosing where seams go
|
|
@@ -319,7 +412,6 @@ Load the docker-compose skill for multi-service setup
|
|
|
319
412
|
- `/research` — Investigate a question against primary sources and capture findings as Markdown
|
|
320
413
|
- `/prototype` — Throwaway prototypes: terminal app for logic or UI variations for visual
|
|
321
414
|
- `/setup-agent-tracker` — One-time per-repo setup of the issue tracker, triage labels, and domain doc layout
|
|
322
|
-
- `/writing-great-skills` — Reference for writing and editing skills well
|
|
323
415
|
|
|
324
416
|
</details>
|
|
325
417
|
|
|
@@ -419,7 +511,7 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
419
511
|
|
|
420
512
|
### Building and testing
|
|
421
513
|
|
|
422
|
-
Python 3.
|
|
514
|
+
Python 3.11+ required. Create an isolated environment and run tests:
|
|
423
515
|
|
|
424
516
|
```bash
|
|
425
517
|
python -m venv .venv && source .venv/bin/activate
|
|
@@ -512,7 +604,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/ADD_CLI.md](docs/ADD_CLI
|
|
|
512
604
|
## Inspired by
|
|
513
605
|
|
|
514
606
|
- [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — The wiki memory backend implements his compile-once, query-forever knowledge pattern with structured page types and three core operations (ingest, query, lint)
|
|
515
|
-
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (
|
|
607
|
+
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
|
|
516
608
|
|
|
517
609
|
## License
|
|
518
610
|
|
|
@@ -5,14 +5,16 @@ AI agent configuration manager for Claude Code and OpenCode — orchestrates a t
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
8
|
+
pipx install agent-notes
|
|
9
9
|
agent-notes install # interactive wizard guides you through setup
|
|
10
10
|
agent-notes doctor
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
> No `pipx`? Use `uv tool install agent-notes` instead, or see **Troubleshooting: externally-managed-environment** below.
|
|
14
|
+
|
|
13
15
|
**What's Included**
|
|
14
16
|
- 19 specialized AI subagents (Opus reasons, Sonnet executes, Haiku explores)
|
|
15
|
-
-
|
|
17
|
+
- 25 on-demand skills (Rails, Docker, Git, Kamal, Process)
|
|
16
18
|
- Global rules and guardrails (including a ban on AI self-attribution in commits/PRs)
|
|
17
19
|
- Agent memory with 3 storage options (Local, Obsidian, Wiki)
|
|
18
20
|
- Configuration for Claude Code, OpenCode, and GitHub Copilot
|
|
@@ -31,6 +33,13 @@ pipx install agent-notes
|
|
|
31
33
|
agent-notes install
|
|
32
34
|
```
|
|
33
35
|
|
|
36
|
+
**uv tool (lightweight alternative to pipx):**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
uv tool install agent-notes
|
|
40
|
+
agent-notes install
|
|
41
|
+
```
|
|
42
|
+
|
|
34
43
|
**venv + pip (if you prefer to manage your own environment):**
|
|
35
44
|
|
|
36
45
|
```bash
|
|
@@ -64,6 +73,7 @@ agent-notes uninstall && pipx uninstall agent-notes && pipx install agent-notes
|
|
|
64
73
|
|
|
65
74
|
With venv:
|
|
66
75
|
```bash
|
|
76
|
+
source .venv/bin/activate
|
|
67
77
|
agent-notes uninstall && pip uninstall agent-notes && pip install agent-notes && agent-notes install
|
|
68
78
|
```
|
|
69
79
|
|
|
@@ -87,6 +97,38 @@ To produce a release artifact (wheel for distribution), use `python -m build` +
|
|
|
87
97
|
|
|
88
98
|
The plugin runs a `session.start` hook that surfaces agent-notes context to the CLI session. It does **not** include the full `agent-notes` CLI (wizard, doctor, config, memory, etc.). For those, use install method 1 or 2.
|
|
89
99
|
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**Note on two meanings of "plugin":** This distribution plugin (the `.claude-plugin/` marketplace artifact) is distinct from **agent-notes plugins** — an internal toggleable subsystem documented below. See [Plugins](#plugins) to tell them apart.
|
|
103
|
+
|
|
104
|
+
### Plugins (toggleable subsystems)
|
|
105
|
+
|
|
106
|
+
Agent-notes includes toggleable subsystems (plugins) that can be enabled or disabled post-install. Currently, only **cost-report** is available as a plugin.
|
|
107
|
+
|
|
108
|
+
**List available plugins:**
|
|
109
|
+
```bash
|
|
110
|
+
agent-notes plugins list
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Example output:
|
|
114
|
+
```
|
|
115
|
+
cost-report [off] Emit a per-session token cost report at the Stop hook
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Enable or disable a plugin:**
|
|
119
|
+
```bash
|
|
120
|
+
agent-notes plugins enable cost-report # Enable cost-report
|
|
121
|
+
agent-notes plugins disable cost-report # Disable cost-report
|
|
122
|
+
agent-notes install # Apply changes
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Show plugin details:**
|
|
126
|
+
```bash
|
|
127
|
+
agent-notes plugins info cost-report
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
After enabling or disabling a plugin, run `agent-notes install` to apply the changes. For details, see `docs/WRITING_A_PLUGIN.md`.
|
|
131
|
+
|
|
90
132
|
### API keys
|
|
91
133
|
|
|
92
134
|
Provider API keys live in `~/.agent-notes/credentials.toml` (mode 0600, never committed). Add or update via:
|
|
@@ -103,6 +145,46 @@ agent-notes config provider openrouter # prints "configured" or "no key"
|
|
|
103
145
|
|
|
104
146
|
</details>
|
|
105
147
|
|
|
148
|
+
### Troubleshooting: externally-managed-environment
|
|
149
|
+
|
|
150
|
+
On Arch, Debian, Ubuntu, and other distributions that mark the system Python as externally-managed (PEP 668), you may see an error like:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
error: externally-managed-environment
|
|
154
|
+
|
|
155
|
+
× This environment is externally managed
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
This error occurs because `pip` refuses to install into the system Python. **Solution:** use an isolated package manager instead:
|
|
159
|
+
|
|
160
|
+
1. **Recommended — pipx:**
|
|
161
|
+
```bash
|
|
162
|
+
pipx install agent-notes
|
|
163
|
+
agent-notes install
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
2. **Alternative — uv tool:**
|
|
167
|
+
```bash
|
|
168
|
+
uv tool install agent-notes
|
|
169
|
+
agent-notes install
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
3. **Alternative — Create a venv first:**
|
|
173
|
+
```bash
|
|
174
|
+
python -m venv .venv && source .venv/bin/activate
|
|
175
|
+
pip install agent-notes
|
|
176
|
+
agent-notes install
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Last resort only** (discouraged — system packages may conflict):
|
|
180
|
+
```bash
|
|
181
|
+
pip install --user agent-notes
|
|
182
|
+
# or
|
|
183
|
+
pip install --break-system-packages agent-notes
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
106
188
|
<details>
|
|
107
189
|
<summary>Uninstall</summary>
|
|
108
190
|
|
|
@@ -138,7 +220,7 @@ If you configured agent-notes to access your memory vault (Obsidian or local), t
|
|
|
138
220
|
<details>
|
|
139
221
|
<summary>Agent Team</summary>
|
|
140
222
|
|
|
141
|
-
Specialized subagents with hierarchical model strategy: **Opus 4.
|
|
223
|
+
Specialized subagents with hierarchical model strategy: **Opus 4.8 reasons (high effort), Sonnet 5 executes (medium effort), Haiku 4.5 scouts (low effort).**
|
|
142
224
|
|
|
143
225
|
| Agent | Role | Model Tier | Purpose |
|
|
144
226
|
|---|---|---|---|
|
|
@@ -162,7 +244,7 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
162
244
|
| analyst | scout | haiku | Requirements translation, acceptance criteria |
|
|
163
245
|
| tech-writer | scout | haiku | READMEs, API docs, changelogs |
|
|
164
246
|
|
|
165
|
-
**4 roles, 19 agents, 3 model tiers.** The tiered model strategy optimizes cost: Opus reasons ($
|
|
247
|
+
**4 roles, 19 agents, 3 model tiers.** The tiered model strategy optimizes cost: Opus reasons ($5/$25 per 1M tokens in/out), Sonnet executes ($3/$15), Haiku scouts ($1/$5). A premium `fable` tier ($10/$50) is available for explicit pinning, but no role defaults to it.
|
|
166
248
|
|
|
167
249
|
### Delegation rules
|
|
168
250
|
|
|
@@ -184,6 +266,18 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
184
266
|
- **tech-writer** — Documentation, READMEs, API docs
|
|
185
267
|
- **devil** — Challenges assumptions and plans
|
|
186
268
|
|
|
269
|
+
### Reconfiguring roles, models, and effort
|
|
270
|
+
|
|
271
|
+
During `agent-notes install`, wizard step 2 asks you to pick a model per role, and — for models served by a provider with a known effort vocabulary (currently `anthropic`, `openai`) — a follow-up effort prompt, pre-selected to the role's typical effort when that value is valid for the chosen provider. Providers with no effort registry entry (`github-copilot`, `openrouter`, `google`, `moonshot`) skip the effort prompt entirely.
|
|
272
|
+
|
|
273
|
+
To change these after install:
|
|
274
|
+
```bash
|
|
275
|
+
agent-notes config role-model [--cli <cli>] <role> <model> # e.g. role-model worker claude-sonnet-5
|
|
276
|
+
agent-notes config role-effort [--cli <cli>] <role> <effort> # e.g. role-effort worker high
|
|
277
|
+
agent-notes config wizard # interactive menu for both
|
|
278
|
+
```
|
|
279
|
+
`role-effort` validates the effort against the role's currently-assigned model's provider — an invalid value prints that provider's name and its valid effort list. There's no cross-provider mapping: each provider (anthropic, openai) has its own independent effort vocabulary and default.
|
|
280
|
+
|
|
187
281
|
</details>
|
|
188
282
|
|
|
189
283
|
---
|
|
@@ -250,7 +344,7 @@ agent-notes memory lint # health-check
|
|
|
250
344
|
<details>
|
|
251
345
|
<summary>Skills</summary>
|
|
252
346
|
|
|
253
|
-
|
|
347
|
+
25 on-demand knowledge modules across Rails, Docker, Kamal, Git, and Process. Run `agent-notes list skills` for the current list, or browse `agent_notes/data/skills/`. For additional workflows (brainstorming, test-driven development, writing skills), see the complementary [Superpowers](https://github.com/obra/superpowers) plugin.
|
|
254
348
|
|
|
255
349
|
The session context hook auto-generates a skill index from SKILL.md frontmatter at install time, so agents always know what skills are available without loading full skill content. This keeps context overhead low while maintaining skill discoverability.
|
|
256
350
|
|
|
@@ -267,14 +361,13 @@ Load the docker-compose skill for multi-service setup
|
|
|
267
361
|
|---|---|---|
|
|
268
362
|
| Misalignment | Claude starts building before the problem is resolved | `/grill-me`, `/grilling`, `/grill-with-docs` |
|
|
269
363
|
| Vague scope | Work starts without a spec or ticketed breakdown | `/to-spec`, `/to-tickets`, `/wayfinder`, `/triage` |
|
|
270
|
-
| Broken code | Claude codes without a feedback loop or evidence trail | `/
|
|
364
|
+
| Broken code | Claude codes without a feedback loop or evidence trail | `/diagnosing-bugs` |
|
|
271
365
|
| Ball of mud | Architecture drifts; modules grow shallow and tangled | `/improve-codebase-architecture`, `/codebase-design`, `/domain-modeling` |
|
|
272
366
|
|
|
273
367
|
**Skill descriptions:**
|
|
274
368
|
|
|
275
369
|
- `/grill-me`, `/grilling` — Interview the user relentlessly until the plan is fully resolved before touching code
|
|
276
370
|
- `/grill-with-docs` — Same, but cross-references CONTEXT.md and ADRs and updates them inline
|
|
277
|
-
- `/tdd` — RED-GREEN-REFACTOR with tracer-bullet vertical slices; integration-first testing
|
|
278
371
|
- `/diagnosing-bugs` — Diagnosis loop for hard bugs and performance regressions (build a feedback loop first)
|
|
279
372
|
- `/improve-codebase-architecture` — Scan for deepening opportunities, present a visual HTML report, then grill the chosen one
|
|
280
373
|
- `/codebase-design` — Shared vocabulary for designing deep modules and choosing where seams go
|
|
@@ -287,7 +380,6 @@ Load the docker-compose skill for multi-service setup
|
|
|
287
380
|
- `/research` — Investigate a question against primary sources and capture findings as Markdown
|
|
288
381
|
- `/prototype` — Throwaway prototypes: terminal app for logic or UI variations for visual
|
|
289
382
|
- `/setup-agent-tracker` — One-time per-repo setup of the issue tracker, triage labels, and domain doc layout
|
|
290
|
-
- `/writing-great-skills` — Reference for writing and editing skills well
|
|
291
383
|
|
|
292
384
|
</details>
|
|
293
385
|
|
|
@@ -387,7 +479,7 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
387
479
|
|
|
388
480
|
### Building and testing
|
|
389
481
|
|
|
390
|
-
Python 3.
|
|
482
|
+
Python 3.11+ required. Create an isolated environment and run tests:
|
|
391
483
|
|
|
392
484
|
```bash
|
|
393
485
|
python -m venv .venv && source .venv/bin/activate
|
|
@@ -480,7 +572,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/ADD_CLI.md](docs/ADD_CLI
|
|
|
480
572
|
## Inspired by
|
|
481
573
|
|
|
482
574
|
- [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — The wiki memory backend implements his compile-once, query-forever knowledge pattern with structured page types and three core operations (ingest, query, lint)
|
|
483
|
-
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (
|
|
575
|
+
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
|
|
484
576
|
|
|
485
577
|
## License
|
|
486
578
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.33.1
|
|
@@ -283,7 +283,7 @@ def main():
|
|
|
283
283
|
# memory
|
|
284
284
|
p_memory = subparsers.add_parser("memory", help="Manage agent memory")
|
|
285
285
|
p_memory.add_argument("action", nargs="?", default="list",
|
|
286
|
-
choices=["init", "list", "vault", "index", "add", "size", "show", "reset", "export", "import"
|
|
286
|
+
choices=["init", "list", "vault", "index", "add", "size", "show", "reset", "export", "import"],
|
|
287
287
|
help="Memory action")
|
|
288
288
|
p_memory.add_argument("name", nargs="?", help="Agent name / note title (for show/reset/add)")
|
|
289
289
|
p_memory.add_argument("extra", nargs="*", help="Additional args (for add: body [type] [agent] [project])")
|
|
@@ -299,10 +299,31 @@ def main():
|
|
|
299
299
|
p_cost_report.add_argument("--since", help="Only include messages at or after this UTC datetime (ISO 8601)")
|
|
300
300
|
p_cost_report.add_argument("--session", help="Session ID to report on (Claude Code only)")
|
|
301
301
|
|
|
302
|
+
# models
|
|
303
|
+
p_models = subparsers.add_parser("models", help="Manage the model catalog")
|
|
304
|
+
p_models_sub = p_models.add_subparsers(dest="subaction", metavar="")
|
|
305
|
+
p_refresh = p_models_sub.add_parser("refresh", help="Fetch latest models from providers and update cache")
|
|
306
|
+
p_refresh.add_argument("--provider", choices=["anthropic", "openai"],
|
|
307
|
+
help="Limit to one provider")
|
|
308
|
+
p_refresh.add_argument("--dry-run", action="store_true", dest="dry_run",
|
|
309
|
+
help="Print diff but do not write cache")
|
|
310
|
+
p_models_sub.add_parser("freeze", help="Promote cache to seed.json for committing")
|
|
311
|
+
|
|
312
|
+
# plugins
|
|
313
|
+
p_plugins = subparsers.add_parser("plugins", help="Manage agent-notes plugins")
|
|
314
|
+
p_plugins_sub = p_plugins.add_subparsers(dest="subaction", metavar="{list,enable,disable,info}")
|
|
315
|
+
p_plugins_sub.add_parser("list", help="List available plugins and their status")
|
|
316
|
+
p_plugins_enable = p_plugins_sub.add_parser("enable", help="Enable a plugin")
|
|
317
|
+
p_plugins_enable.add_argument("name", help="Plugin name")
|
|
318
|
+
p_plugins_disable = p_plugins_sub.add_parser("disable", help="Disable a plugin")
|
|
319
|
+
p_plugins_disable.add_argument("name", help="Plugin name")
|
|
320
|
+
p_plugins_info = p_plugins_sub.add_parser("info", help="Show details for a plugin")
|
|
321
|
+
p_plugins_info.add_argument("name", help="Plugin name")
|
|
322
|
+
|
|
302
323
|
# config
|
|
303
324
|
p_config = subparsers.add_parser("config", help="Reconfigure role/agent/model/memory/skill assignments after install")
|
|
304
325
|
p_config.add_argument("action", nargs="?", default="wizard",
|
|
305
|
-
choices=["wizard", "show", "role-model", "role-agent", "provider", "providers", "memory", "cost-report"],
|
|
326
|
+
choices=["wizard", "show", "role-model", "role-agent", "role-effort", "provider", "providers", "memory", "cost-report"],
|
|
306
327
|
help="Config action (default: wizard)")
|
|
307
328
|
p_config.add_argument("extra", nargs="*", help="Additional positional args (role, model, agent)")
|
|
308
329
|
p_config.add_argument("--cli", help="Target CLI (claude / opencode / both)")
|
|
@@ -364,6 +385,35 @@ def main():
|
|
|
364
385
|
elif args.command == "memory":
|
|
365
386
|
from .commands.memory import memory
|
|
366
387
|
memory(args.action, args.name, getattr(args, "extra", None), description=getattr(args, "description", ""))
|
|
388
|
+
elif args.command == "models":
|
|
389
|
+
subaction = getattr(args, "subaction", None)
|
|
390
|
+
if subaction == "refresh":
|
|
391
|
+
from .commands.models import refresh
|
|
392
|
+
refresh(
|
|
393
|
+
provider=getattr(args, "provider", None),
|
|
394
|
+
dry_run=getattr(args, "dry_run", False),
|
|
395
|
+
)
|
|
396
|
+
elif subaction == "freeze":
|
|
397
|
+
from .commands.models import freeze
|
|
398
|
+
freeze()
|
|
399
|
+
else:
|
|
400
|
+
parser.parse_args(["models", "--help"])
|
|
401
|
+
elif args.command == "plugins":
|
|
402
|
+
subaction = getattr(args, "subaction", None)
|
|
403
|
+
if subaction == "list":
|
|
404
|
+
from .commands.plugins import list_plugins
|
|
405
|
+
list_plugins()
|
|
406
|
+
elif subaction == "enable":
|
|
407
|
+
from .commands.plugins import enable_plugin
|
|
408
|
+
enable_plugin(args.name)
|
|
409
|
+
elif subaction == "disable":
|
|
410
|
+
from .commands.plugins import disable_plugin
|
|
411
|
+
disable_plugin(args.name)
|
|
412
|
+
elif subaction == "info":
|
|
413
|
+
from .commands.plugins import info_plugin
|
|
414
|
+
info_plugin(args.name)
|
|
415
|
+
else:
|
|
416
|
+
parser.parse_args(["plugins", "--help"])
|
|
367
417
|
elif args.command == "config":
|
|
368
418
|
from .commands.config import config
|
|
369
419
|
config(action=args.action, args=getattr(args, "extra", None) or [], cli_filter=args.cli)
|
|
@@ -371,20 +421,10 @@ def main():
|
|
|
371
421
|
from .commands.hook import hook
|
|
372
422
|
hook(args.subaction)
|
|
373
423
|
elif args.command == "cost-report":
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
if args.session:
|
|
379
|
-
argv += ["--session", args.session]
|
|
380
|
-
import sys
|
|
381
|
-
old_argv = sys.argv
|
|
382
|
-
sys.argv = ["agent-notes cost-report"] + argv
|
|
383
|
-
try:
|
|
384
|
-
from .scripts.cost_report import main as _cost_report_main
|
|
385
|
-
sys.exit(_cost_report_main())
|
|
386
|
-
finally:
|
|
387
|
-
sys.argv = old_argv
|
|
424
|
+
from .cost.cost_report import main as _cost_report_main, _parse_since
|
|
425
|
+
since = _parse_since(args.since) if args.since else None
|
|
426
|
+
session_id = args.session or None
|
|
427
|
+
sys.exit(_cost_report_main(since=since, session_id=session_id))
|
|
388
428
|
|
|
389
429
|
if __name__ == "__main__":
|
|
390
430
|
main()
|
|
@@ -188,7 +188,7 @@ def count_agents(backend) -> int:
|
|
|
188
188
|
return 0
|
|
189
189
|
from ..registries.agent_registry import load_agent_registry
|
|
190
190
|
registry = load_agent_registry()
|
|
191
|
-
return sum(1 for a in registry.
|
|
191
|
+
return sum(1 for a in registry.available() if not a.excluded_from(backend.name))
|
|
192
192
|
|
|
193
193
|
|
|
194
194
|
def count_global() -> int:
|
|
@@ -89,24 +89,60 @@ def count_lines(file_path: Path) -> int:
|
|
|
89
89
|
return 0
|
|
90
90
|
|
|
91
91
|
|
|
92
|
-
def
|
|
93
|
-
"""
|
|
92
|
+
def count_dist_clis(files: list[Path], dist_dir: Path, cli_names: set[str]) -> int:
|
|
93
|
+
"""Count distinct CLI backends among generated files (dist/<cli>/... paths).
|
|
94
|
+
|
|
95
|
+
Files outside dist_dir or under non-CLI top-level dirs (rules/, skills/)
|
|
96
|
+
are ignored."""
|
|
97
|
+
found = set()
|
|
98
|
+
for f in files:
|
|
99
|
+
try:
|
|
100
|
+
rel = f.relative_to(dist_dir)
|
|
101
|
+
except ValueError:
|
|
102
|
+
continue
|
|
103
|
+
if rel.parts and rel.parts[0] in cli_names:
|
|
104
|
+
found.add(rel.parts[0])
|
|
105
|
+
return len(found)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def format_build_summary(n_files: int, n_lines: int, n_clis: int) -> str:
|
|
109
|
+
"""One-line build summary, e.g. 'Generated 96 files (13,748 lines) across 4 CLIs'."""
|
|
110
|
+
file_word = "file" if n_files == 1 else "files"
|
|
111
|
+
cli_word = "CLI" if n_clis == 1 else "CLIs"
|
|
112
|
+
return f"Generated {n_files} {file_word} ({n_lines:,} lines) across {n_clis} {cli_word}"
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def build(role_models=None, role_efforts=None, scope='global', project_path=None,
|
|
116
|
+
profile_label: str = "") -> None:
|
|
117
|
+
"""Build agent configuration files from source.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
role_models: Optional explicit {cli: {role: model_id}} pins that override
|
|
121
|
+
persisted state (e.g. wizard selections not yet written to state.json)
|
|
122
|
+
role_efforts: Optional explicit {cli: {role: effort}} pins, same semantics
|
|
123
|
+
scope: which state.json scope's pins drive the render ('global' or 'local')
|
|
124
|
+
project_path: project path for scope='local'
|
|
125
|
+
profile_label: named profile whose pins drive the render ("" = default profile)
|
|
126
|
+
"""
|
|
94
127
|
from ..services.state_store import load_state
|
|
95
|
-
from ..
|
|
128
|
+
from ..registries.cli_registry import load_registry
|
|
96
129
|
|
|
97
130
|
# Read configuration
|
|
98
131
|
try:
|
|
99
|
-
agents_config
|
|
132
|
+
agents_config = load_agents_config()
|
|
100
133
|
except FileNotFoundError as e:
|
|
101
134
|
print(f"Error: {e}")
|
|
102
135
|
return
|
|
103
136
|
|
|
104
137
|
# Load state if present (no error if missing)
|
|
105
138
|
state = load_state()
|
|
106
|
-
|
|
139
|
+
|
|
107
140
|
# Generate agent files (state=None is backward compatible)
|
|
108
141
|
print("Generating agent files...")
|
|
109
|
-
agent_files = generate_agent_files(agents_config,
|
|
142
|
+
agent_files = generate_agent_files(agents_config, state=state,
|
|
143
|
+
scope=scope, project_path=project_path,
|
|
144
|
+
role_models=role_models, role_efforts=role_efforts,
|
|
145
|
+
profile_label=profile_label)
|
|
110
146
|
|
|
111
147
|
# Copy global files
|
|
112
148
|
print("Copying global files...")
|
|
@@ -120,21 +156,12 @@ def build() -> None:
|
|
|
120
156
|
print("Copying commands...")
|
|
121
157
|
command_files = copy_commands()
|
|
122
158
|
|
|
123
|
-
# Report results
|
|
159
|
+
# Report results — one-line summary (per-file listing was too noisy)
|
|
124
160
|
all_files = agent_files + global_files + skill_files + command_files
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
try:
|
|
130
|
-
rel_path = file_path.relative_to(ROOT)
|
|
131
|
-
except ValueError:
|
|
132
|
-
rel_path = file_path # absolute path if outside the package tree
|
|
133
|
-
lines = count_lines(file_path)
|
|
134
|
-
total_lines += lines
|
|
135
|
-
print(f" {rel_path} ({lines} lines)")
|
|
136
|
-
|
|
137
|
-
print(f"\nTotal: {total_lines} lines across {len(all_files)} files")
|
|
161
|
+
total_lines = sum(count_lines(f) for f in all_files)
|
|
162
|
+
cli_names = {b.name for b in load_registry().all()}
|
|
163
|
+
n_clis = count_dist_clis(all_files, DIST_DIR, cli_names)
|
|
164
|
+
print(f"\n{format_build_summary(len(all_files), total_lines, n_clis)}")
|
|
138
165
|
|
|
139
166
|
|
|
140
167
|
if __name__ == '__main__':
|