basic-memory 0.13.0b2__tar.gz → 0.13.0b4__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.
Potentially problematic release.
This version of basic-memory might be problematic. Click here for more details.
- basic_memory-0.13.0b4/.claude/commands/check-health.md +190 -0
- basic_memory-0.13.0b4/.claude/commands/commands.md +62 -0
- basic_memory-0.13.0b4/.claude/commands/lint-fix.md +145 -0
- basic_memory-0.13.0b4/.claude/commands/release/beta.md +69 -0
- basic_memory-0.13.0b4/.claude/commands/release/changelog.md +157 -0
- basic_memory-0.13.0b4/.claude/commands/release/release-check.md +131 -0
- basic_memory-0.13.0b4/.claude/commands/release/release.md +84 -0
- basic_memory-0.13.0b4/.claude/commands/test-coverage.md +131 -0
- basic_memory-0.13.0b4/.claude/commands/test-live.md +397 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/PKG-INFO +1 -1
- basic_memory-0.13.0b4/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +104 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/knowledge_router.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/project_router.py +9 -6
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/config.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/server.py +1 -2
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/move_note.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/models/project.py +1 -3
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/project_service.py +63 -11
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/search_service.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/sync/sync_service.py +4 -2
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/conftest.py +15 -7
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/conftest.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_knowledge_router.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_project_router.py +9 -9
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/conftest.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_cli_tools.py +1 -1
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_project_info.py +0 -2
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/conftest.py +30 -16
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_move_note.py +16 -3
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_entity_service.py +4 -5
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_project_service.py +187 -17
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_search_service.py +10 -10
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/sync/test_sync_service.py +8 -5
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.env.oauth.example +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/dependabot.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/workflows/release.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.github/workflows/test.yml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.gitignore +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.mcp.json +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/.python-version +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/AUTH.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CHANGELOG.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CITATION.cff +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CLA.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CLAUDE.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/CONTRIBUTING.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/Dockerfile +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/LICENSE +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/Makefile +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/README.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/RELEASE_NOTES_v0.13.0.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/SECURITY.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/TESTING.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/basic-memory.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/CLI Reference.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Canvas.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Claude.ai Integration.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Getting Started with Basic Memory.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Knowledge Format.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/OAuth Authentication Guide.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Obsidian Integration.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Supabase OAuth Setup.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Technical Information.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/User Guide.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/Welcome to Basic memory.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/Canvas.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/Prompt.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/disk-ai-logo-400x400.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/disk-ai-logo.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/prompt 1.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/prompt2.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/prompt3.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/attachments/prompt4.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/docs/publish.js +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Brewing Equipment.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Coffee Bean Origins.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Coffee Brewing Methods.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Coffee Flavor Map.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Coffee Knowledge Base.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Flavor Extraction.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/Coffee Notes/Tasting Notes.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/examples/testing/Test Note Creation - Basic Functionality.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/llms-install.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/memory.json +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/pyproject.toml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/scripts/install.sh +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/smithery.yaml +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/db.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/project_session.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/static/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/static/json_canvas_spec_1_0.md +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/.coverage.Pauls-MacBook-Pro-2.local.66900.XDhpuELx +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/.coverage.Pauls-MacBook-Pro-2.local.28077.XqMfGOxx +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/Screenshot.png +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/.coverage.Pauls-MacBook-Pro-2.local.60974.XPpBfqqx +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/.coverage.Pauls-MacBook-Pro-2.local.63666.XDIUQNrx +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_project_commands.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_status.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/cli/test_version.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/.coverage.Pauls-MacBook-Pro-2.local.63904.XiAZuuhx +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_server.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.13.0b2 → basic_memory-0.13.0b4}/uv.lock +0 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# /project:check-health - Project Health Assessment
|
|
2
|
+
|
|
3
|
+
Comprehensive health check of the Basic Memory project including code quality, test coverage, dependencies, and documentation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/project:check-health
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Implementation
|
|
11
|
+
|
|
12
|
+
You are an expert DevOps engineer for the Basic Memory project. When the user runs `/project:check-health`, execute the following comprehensive assessment:
|
|
13
|
+
|
|
14
|
+
### Step 1: Git Repository Health
|
|
15
|
+
1. **Repository Status**
|
|
16
|
+
```bash
|
|
17
|
+
git status
|
|
18
|
+
git log --oneline -5
|
|
19
|
+
git branch -vv
|
|
20
|
+
```
|
|
21
|
+
- Check working directory status
|
|
22
|
+
- Verify branch alignment with remote
|
|
23
|
+
- Check recent commit activity
|
|
24
|
+
|
|
25
|
+
2. **Branch Analysis**
|
|
26
|
+
- Verify on main branch
|
|
27
|
+
- Check if ahead/behind remote
|
|
28
|
+
- Identify any untracked files
|
|
29
|
+
|
|
30
|
+
### Step 2: Code Quality Assessment
|
|
31
|
+
1. **Linting and Formatting**
|
|
32
|
+
```bash
|
|
33
|
+
uv run ruff check .
|
|
34
|
+
uv run pyright
|
|
35
|
+
```
|
|
36
|
+
- Count linting issues by severity
|
|
37
|
+
- Check type annotation coverage
|
|
38
|
+
- Verify code formatting compliance
|
|
39
|
+
|
|
40
|
+
2. **Test Suite Health**
|
|
41
|
+
```bash
|
|
42
|
+
uv run pytest --collect-only -q
|
|
43
|
+
uv run pytest --co -q | wc -l
|
|
44
|
+
```
|
|
45
|
+
- Count total tests
|
|
46
|
+
- Check for test discovery issues
|
|
47
|
+
- Verify test structure integrity
|
|
48
|
+
|
|
49
|
+
### Step 3: Dependency Analysis
|
|
50
|
+
1. **Dependency Health**
|
|
51
|
+
```bash
|
|
52
|
+
uv tree
|
|
53
|
+
uv lock --dry-run
|
|
54
|
+
```
|
|
55
|
+
- Check for dependency conflicts
|
|
56
|
+
- Identify outdated dependencies
|
|
57
|
+
- Verify lock file consistency
|
|
58
|
+
|
|
59
|
+
2. **Security Scan**
|
|
60
|
+
```bash
|
|
61
|
+
uv run pip-audit --desc
|
|
62
|
+
```
|
|
63
|
+
- Scan for known vulnerabilities
|
|
64
|
+
- Check dependency licenses
|
|
65
|
+
- Identify security advisories
|
|
66
|
+
|
|
67
|
+
### Step 4: Performance Metrics
|
|
68
|
+
1. **Test Performance**
|
|
69
|
+
```bash
|
|
70
|
+
uv run pytest --durations=10
|
|
71
|
+
```
|
|
72
|
+
- Identify slowest tests
|
|
73
|
+
- Check overall test execution time
|
|
74
|
+
- Monitor test suite growth
|
|
75
|
+
|
|
76
|
+
2. **Build Performance**
|
|
77
|
+
```bash
|
|
78
|
+
time uv run python -c "import basic_memory"
|
|
79
|
+
```
|
|
80
|
+
- Check import time
|
|
81
|
+
- Validate package installation
|
|
82
|
+
- Monitor startup performance
|
|
83
|
+
|
|
84
|
+
### Step 5: Documentation Health
|
|
85
|
+
1. **Documentation Coverage**
|
|
86
|
+
- Check README.md currency
|
|
87
|
+
- Verify CLI documentation
|
|
88
|
+
- Validate MCP tool documentation
|
|
89
|
+
- Check changelog completeness
|
|
90
|
+
|
|
91
|
+
2. **API Documentation**
|
|
92
|
+
- Verify docstring coverage
|
|
93
|
+
- Check type annotation completeness
|
|
94
|
+
- Validate example code
|
|
95
|
+
|
|
96
|
+
### Step 6: Project Metrics
|
|
97
|
+
1. **Code Statistics**
|
|
98
|
+
```bash
|
|
99
|
+
find src -name "*.py" | xargs wc -l
|
|
100
|
+
find tests -name "*.py" | xargs wc -l
|
|
101
|
+
```
|
|
102
|
+
- Lines of code trends
|
|
103
|
+
- Test-to-code ratio
|
|
104
|
+
- File organization metrics
|
|
105
|
+
|
|
106
|
+
## Health Report Format
|
|
107
|
+
|
|
108
|
+
Generate comprehensive health dashboard:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
🏥 Basic Memory Project Health Report
|
|
112
|
+
|
|
113
|
+
📊 OVERALL HEALTH: 🟢 EXCELLENT (92/100)
|
|
114
|
+
|
|
115
|
+
🗂️ GIT REPOSITORY
|
|
116
|
+
✅ Clean working directory
|
|
117
|
+
✅ Up to date with origin/main
|
|
118
|
+
✅ Recent commit activity (5 commits this week)
|
|
119
|
+
|
|
120
|
+
🔍 CODE QUALITY
|
|
121
|
+
✅ Linting: 0 errors, 2 warnings
|
|
122
|
+
✅ Type checking: 100% coverage
|
|
123
|
+
✅ Formatting: Compliant
|
|
124
|
+
⚠️ Complex functions: 3 need refactoring
|
|
125
|
+
|
|
126
|
+
🧪 TEST SUITE
|
|
127
|
+
✅ Total tests: 744
|
|
128
|
+
✅ Test discovery: All tests found
|
|
129
|
+
✅ Coverage: 98.2%
|
|
130
|
+
⚡ Performance: 45.2s (good)
|
|
131
|
+
|
|
132
|
+
📦 DEPENDENCIES
|
|
133
|
+
✅ Dependencies: Up to date
|
|
134
|
+
✅ Security: No vulnerabilities
|
|
135
|
+
✅ Conflicts: None detected
|
|
136
|
+
⚠️ Outdated: 2 minor updates available
|
|
137
|
+
|
|
138
|
+
📖 DOCUMENTATION
|
|
139
|
+
✅ README: Current
|
|
140
|
+
✅ API docs: 95% coverage
|
|
141
|
+
⚠️ CLI reference: Needs update
|
|
142
|
+
✅ Changelog: Complete
|
|
143
|
+
|
|
144
|
+
📈 METRICS
|
|
145
|
+
├── Source code: 15,432 lines
|
|
146
|
+
├── Test code: 8,967 lines
|
|
147
|
+
├── Test ratio: 58% (excellent)
|
|
148
|
+
└── Complexity: Low (maintainable)
|
|
149
|
+
|
|
150
|
+
🎯 RECOMMENDATIONS:
|
|
151
|
+
1. Update CLI documentation
|
|
152
|
+
2. Refactor 3 complex functions
|
|
153
|
+
3. Update minor dependencies
|
|
154
|
+
4. Consider splitting large test files
|
|
155
|
+
|
|
156
|
+
🏆 PROJECT STATUS: Ready for v0.13.0 release!
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Health Scoring
|
|
160
|
+
|
|
161
|
+
### Excellent (90-100)
|
|
162
|
+
- All quality gates pass
|
|
163
|
+
- High test coverage (>95%)
|
|
164
|
+
- No security issues
|
|
165
|
+
- Documentation current
|
|
166
|
+
|
|
167
|
+
### Good (75-89)
|
|
168
|
+
- Minor issues present
|
|
169
|
+
- Good test coverage (>90%)
|
|
170
|
+
- No critical security issues
|
|
171
|
+
- Most documentation current
|
|
172
|
+
|
|
173
|
+
### Needs Attention (60-74)
|
|
174
|
+
- Several quality issues
|
|
175
|
+
- Adequate test coverage (>80%)
|
|
176
|
+
- Minor security concerns
|
|
177
|
+
- Documentation gaps
|
|
178
|
+
|
|
179
|
+
### Critical (<60)
|
|
180
|
+
- Major quality problems
|
|
181
|
+
- Low test coverage (<80%)
|
|
182
|
+
- Security vulnerabilities
|
|
183
|
+
- Significant documentation issues
|
|
184
|
+
|
|
185
|
+
## Context
|
|
186
|
+
- Provides comprehensive project overview
|
|
187
|
+
- Identifies potential issues before they become problems
|
|
188
|
+
- Tracks project health trends over time
|
|
189
|
+
- Helps prioritize maintenance tasks
|
|
190
|
+
- Supports release readiness decisions
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Basic Memory Custom Commands
|
|
2
|
+
|
|
3
|
+
This directory contains custom Claude Code slash commands for the Basic Memory project.
|
|
4
|
+
|
|
5
|
+
## Available Commands
|
|
6
|
+
|
|
7
|
+
### Release Management (`/project:release:*`)
|
|
8
|
+
- `/project:release:beta` - Create beta releases with automated quality checks
|
|
9
|
+
- `/project:release:release` - Create stable releases with comprehensive validation
|
|
10
|
+
- `/project:release:release-check` - Pre-flight validation without making changes
|
|
11
|
+
- `/project:release:changelog` - Generate changelog entries from commits
|
|
12
|
+
|
|
13
|
+
### Development (`/project:*`)
|
|
14
|
+
- `/project:test-coverage` - Run tests with detailed coverage analysis
|
|
15
|
+
- `/project:test-live` - Live testing suite using real Basic Memory installation
|
|
16
|
+
- `/project:lint-fix` - Run comprehensive linting with auto-fix
|
|
17
|
+
- `/project:check-health` - Comprehensive project health assessment
|
|
18
|
+
|
|
19
|
+
## Command Structure
|
|
20
|
+
|
|
21
|
+
Commands are organized by functionality:
|
|
22
|
+
```
|
|
23
|
+
.claude/commands/
|
|
24
|
+
├── release/ # Release management commands
|
|
25
|
+
│ ├── beta.md # /project:release:beta
|
|
26
|
+
│ ├── release.md # /project:release:release
|
|
27
|
+
│ ├── release-check.md # /project:release:release-check
|
|
28
|
+
│ └── changelog.md # /project:release:changelog
|
|
29
|
+
├── test-coverage.md # /project:test-coverage
|
|
30
|
+
├── test-live.md # /project:test-live
|
|
31
|
+
├── lint-fix.md # /project:lint-fix
|
|
32
|
+
├── check-health.md # /project:check-health
|
|
33
|
+
└── commands.md # This overview file
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
Commands are invoked using the `/project:` prefix:
|
|
39
|
+
- `/project:release:beta v0.13.0b4`
|
|
40
|
+
- `/project:test-coverage mcp`
|
|
41
|
+
- `/project:test-live core`
|
|
42
|
+
- `/project:release:release-check`
|
|
43
|
+
- `/project:check-health`
|
|
44
|
+
|
|
45
|
+
## Implementation
|
|
46
|
+
|
|
47
|
+
Each command is implemented as a Markdown file containing structured prompts that:
|
|
48
|
+
1. Validate preconditions
|
|
49
|
+
2. Execute steps in the correct order
|
|
50
|
+
3. Handle errors gracefully
|
|
51
|
+
4. Provide clear status updates
|
|
52
|
+
5. Return actionable results
|
|
53
|
+
|
|
54
|
+
## Tooling Integration
|
|
55
|
+
|
|
56
|
+
Commands leverage existing project tooling:
|
|
57
|
+
- `make check` - Quality checks
|
|
58
|
+
- `make test` - Test suite
|
|
59
|
+
- `make update-deps` - Dependency updates
|
|
60
|
+
- `uv` - Package management
|
|
61
|
+
- `git` - Version control
|
|
62
|
+
- GitHub Actions - CI/CD pipeline
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# /project:lint-fix - Comprehensive Code Quality Fix
|
|
2
|
+
|
|
3
|
+
Run comprehensive linting and auto-fix code quality issues across the codebase.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/project:lint-fix
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Implementation
|
|
11
|
+
|
|
12
|
+
You are an expert code quality engineer for the Basic Memory project. When the user runs `/project:lint-fix`, execute the following steps:
|
|
13
|
+
|
|
14
|
+
### Step 1: Pre-flight Check
|
|
15
|
+
1. **Verify Clean Working Directory**
|
|
16
|
+
```bash
|
|
17
|
+
git status --porcelain
|
|
18
|
+
```
|
|
19
|
+
- Check for uncommitted changes
|
|
20
|
+
- Warn if working directory is not clean
|
|
21
|
+
- Suggest stashing changes if needed
|
|
22
|
+
|
|
23
|
+
### Step 2: Import Organization
|
|
24
|
+
1. **Fix Import Order and Cleanup**
|
|
25
|
+
```bash
|
|
26
|
+
uv run ruff check --select I --fix .
|
|
27
|
+
```
|
|
28
|
+
- Sort imports by category (standard, third-party, local)
|
|
29
|
+
- Remove unused imports
|
|
30
|
+
- Fix import spacing and organization
|
|
31
|
+
|
|
32
|
+
### Step 3: Code Formatting
|
|
33
|
+
1. **Apply Consistent Formatting**
|
|
34
|
+
```bash
|
|
35
|
+
uv run ruff format .
|
|
36
|
+
```
|
|
37
|
+
- Format code according to project style
|
|
38
|
+
- Fix line length issues (100 chars max)
|
|
39
|
+
- Standardize quotes and spacing
|
|
40
|
+
|
|
41
|
+
### Step 4: Linting with Auto-fix
|
|
42
|
+
1. **Fix Linting Issues**
|
|
43
|
+
```bash
|
|
44
|
+
uv run ruff check --fix .
|
|
45
|
+
```
|
|
46
|
+
- Auto-fix safe linting issues
|
|
47
|
+
- Report any remaining manual fixes needed
|
|
48
|
+
- Focus on code quality and best practices
|
|
49
|
+
|
|
50
|
+
### Step 5: Type Checking
|
|
51
|
+
1. **Validate Type Annotations**
|
|
52
|
+
```bash
|
|
53
|
+
uv run pyright
|
|
54
|
+
```
|
|
55
|
+
- Check for type errors
|
|
56
|
+
- Report any missing type annotations
|
|
57
|
+
- Validate type compatibility
|
|
58
|
+
|
|
59
|
+
### Step 6: Report Generation
|
|
60
|
+
Generate comprehensive quality report:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
🔧 Code Quality Fix Report
|
|
64
|
+
|
|
65
|
+
✅ FIXES APPLIED:
|
|
66
|
+
├── Import organization: 12 files updated
|
|
67
|
+
├── Code formatting: 8 files reformatted
|
|
68
|
+
├── Auto-fixable lint issues: 23 issues resolved
|
|
69
|
+
└── Total files processed: 156
|
|
70
|
+
|
|
71
|
+
⚠️ MANUAL ATTENTION NEEDED:
|
|
72
|
+
├── Type annotations missing in entity_service.py:45
|
|
73
|
+
├── Complex function needs refactoring in sync_service.py:123
|
|
74
|
+
└── Unused variable in test_utils.py:67
|
|
75
|
+
|
|
76
|
+
🎯 QUALITY SCORE: 96.2% (excellent)
|
|
77
|
+
|
|
78
|
+
📁 Run `git diff` to review all changes
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Error Handling
|
|
82
|
+
|
|
83
|
+
### Common Issues
|
|
84
|
+
- **Merge Conflicts**: Provide resolution guidance
|
|
85
|
+
- **Syntax Errors**: Point to specific files and lines
|
|
86
|
+
- **Type Errors**: Suggest specific fixes
|
|
87
|
+
- **Import Errors**: Check for missing dependencies
|
|
88
|
+
|
|
89
|
+
### Recovery Steps
|
|
90
|
+
- If auto-fixes introduce issues, provide rollback instructions
|
|
91
|
+
- If type checking fails, suggest incremental fixes
|
|
92
|
+
- If tests break, provide debugging guidance
|
|
93
|
+
|
|
94
|
+
## Quality Gates
|
|
95
|
+
|
|
96
|
+
### Must Pass
|
|
97
|
+
- [ ] All auto-fixable lint issues resolved
|
|
98
|
+
- [ ] Code formatting consistent
|
|
99
|
+
- [ ] No syntax errors
|
|
100
|
+
- [ ] Import organization clean
|
|
101
|
+
|
|
102
|
+
### Should Pass (Warnings)
|
|
103
|
+
- [ ] No type checking errors
|
|
104
|
+
- [ ] No complex function warnings
|
|
105
|
+
- [ ] No unused variables/imports
|
|
106
|
+
- [ ] Consistent naming conventions
|
|
107
|
+
|
|
108
|
+
## Output Examples
|
|
109
|
+
|
|
110
|
+
### Successful Fix
|
|
111
|
+
```
|
|
112
|
+
🎉 CODE QUALITY IMPROVED!
|
|
113
|
+
|
|
114
|
+
✅ All auto-fixes applied successfully
|
|
115
|
+
📏 Code formatting: 100% compliant
|
|
116
|
+
🔍 Linting: No issues found
|
|
117
|
+
🏷️ Type checking: All passed
|
|
118
|
+
|
|
119
|
+
Ready for commit! Use:
|
|
120
|
+
git add -A && git commit -m "style: fix code quality issues"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Issues Requiring Attention
|
|
124
|
+
```
|
|
125
|
+
⚠️ PARTIAL SUCCESS - MANUAL FIXES NEEDED
|
|
126
|
+
|
|
127
|
+
✅ Auto-fixes applied: 45 issues
|
|
128
|
+
❌ Manual fixes needed: 3 issues
|
|
129
|
+
|
|
130
|
+
Priority fixes:
|
|
131
|
+
1. Fix type annotation in services/entity_service.py:142
|
|
132
|
+
2. Simplify complex function in sync/sync_service.py:67
|
|
133
|
+
3. Remove unused import in tests/conftest.py:12
|
|
134
|
+
|
|
135
|
+
Run these commands:
|
|
136
|
+
# Fix specific file
|
|
137
|
+
uv run pyright src/basic_memory/services/entity_service.py
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Context
|
|
141
|
+
- Uses ruff for fast Python linting and formatting
|
|
142
|
+
- Uses pyright for type checking
|
|
143
|
+
- Follows project code style guidelines (100 char line length)
|
|
144
|
+
- Maintains backward compatibility
|
|
145
|
+
- Integrates with existing pre-commit hooks
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# /beta - Create Beta Release
|
|
2
|
+
|
|
3
|
+
Create a new beta release for the current version with automated quality checks and tagging.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/beta [version]
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (optional): Beta version like `v0.13.0b4`. If not provided, auto-increments from latest beta tag.
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert release manager for the Basic Memory project. When the user runs `/beta`, execute the following steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Pre-flight Checks
|
|
18
|
+
1. Check current git status for uncommitted changes
|
|
19
|
+
2. Verify we're on the `main` branch
|
|
20
|
+
3. Get the latest beta tag to determine next version if not provided
|
|
21
|
+
|
|
22
|
+
### Step 2: Quality Assurance
|
|
23
|
+
1. Run `make check` to ensure code quality
|
|
24
|
+
2. If any checks fail, report issues and stop
|
|
25
|
+
3. Run `make update-deps` to ensure latest dependencies
|
|
26
|
+
4. Commit any dependency updates with proper message
|
|
27
|
+
|
|
28
|
+
### Step 3: Version Determination
|
|
29
|
+
If version not provided:
|
|
30
|
+
1. Get latest git tags with `git tag -l "v*b*" --sort=-version:refname | head -1`
|
|
31
|
+
2. Auto-increment beta number (e.g., `v0.13.0b2` → `v0.13.0b3`)
|
|
32
|
+
3. Confirm version with user before proceeding
|
|
33
|
+
|
|
34
|
+
### Step 4: Release Creation
|
|
35
|
+
1. Commit any remaining changes
|
|
36
|
+
2. Push to main: `git push origin main`
|
|
37
|
+
3. Create tag: `git tag {version}`
|
|
38
|
+
4. Push tag: `git push origin {version}`
|
|
39
|
+
|
|
40
|
+
### Step 5: Monitor Release
|
|
41
|
+
1. Check GitHub Actions workflow starts successfully
|
|
42
|
+
2. Provide installation instructions for beta
|
|
43
|
+
3. Report status and next steps
|
|
44
|
+
|
|
45
|
+
## Error Handling
|
|
46
|
+
- If quality checks fail, provide specific fix instructions
|
|
47
|
+
- If git operations fail, provide manual recovery steps
|
|
48
|
+
- If GitHub Actions fail, provide debugging guidance
|
|
49
|
+
|
|
50
|
+
## Success Output
|
|
51
|
+
```
|
|
52
|
+
✅ Beta Release v0.13.0b4 Created Successfully!
|
|
53
|
+
|
|
54
|
+
🏷️ Tag: v0.13.0b4
|
|
55
|
+
🚀 GitHub Actions: Running
|
|
56
|
+
📦 PyPI: Will be available in ~5 minutes
|
|
57
|
+
|
|
58
|
+
Install with:
|
|
59
|
+
uv tool upgrade basic-memory --prerelease=allow
|
|
60
|
+
|
|
61
|
+
Monitor release: https://github.com/basicmachines-co/basic-memory/actions
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Context
|
|
65
|
+
- Use the existing Makefile targets (`make check`, `make update-deps`)
|
|
66
|
+
- Follow semantic versioning for beta releases
|
|
67
|
+
- Maintain release notes in CHANGELOG.md
|
|
68
|
+
- Use conventional commit messages
|
|
69
|
+
- Leverage uv-dynamic-versioning for version management
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# /changelog - Generate or Update Changelog Entry
|
|
2
|
+
|
|
3
|
+
Analyze commits and generate formatted changelog entry for a version.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/changelog <version> [type]
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Version like `v0.13.0` or `v0.13.0b4`
|
|
12
|
+
- `type` (optional): `beta`, `rc`, or `stable` (default: `stable`)
|
|
13
|
+
|
|
14
|
+
## Implementation
|
|
15
|
+
|
|
16
|
+
You are an expert technical writer for the Basic Memory project. When the user runs `/changelog`, execute the following steps:
|
|
17
|
+
|
|
18
|
+
### Step 1: Version Analysis
|
|
19
|
+
1. **Determine Commit Range**
|
|
20
|
+
```bash
|
|
21
|
+
# Find last release tag
|
|
22
|
+
git tag -l "v*" --sort=-version:refname | grep -v "b\|rc" | head -1
|
|
23
|
+
|
|
24
|
+
# Get commits since last release
|
|
25
|
+
git log --oneline ${last_tag}..HEAD
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
2. **Parse Conventional Commits**
|
|
29
|
+
- Extract feat: (features)
|
|
30
|
+
- Extract fix: (bug fixes)
|
|
31
|
+
- Extract BREAKING CHANGE: (breaking changes)
|
|
32
|
+
- Extract chore:, docs:, test: (other improvements)
|
|
33
|
+
|
|
34
|
+
### Step 2: Categorize Changes
|
|
35
|
+
1. **Features (feat:)**
|
|
36
|
+
- New MCP tools
|
|
37
|
+
- New CLI commands
|
|
38
|
+
- New API endpoints
|
|
39
|
+
- Major functionality additions
|
|
40
|
+
|
|
41
|
+
2. **Bug Fixes (fix:)**
|
|
42
|
+
- User-facing bug fixes
|
|
43
|
+
- Critical issues resolved
|
|
44
|
+
- Performance improvements
|
|
45
|
+
- Security fixes
|
|
46
|
+
|
|
47
|
+
3. **Technical Improvements**
|
|
48
|
+
- Test coverage improvements
|
|
49
|
+
- Code quality enhancements
|
|
50
|
+
- Dependency updates
|
|
51
|
+
- Documentation updates
|
|
52
|
+
|
|
53
|
+
4. **Breaking Changes**
|
|
54
|
+
- API changes
|
|
55
|
+
- Configuration changes
|
|
56
|
+
- Behavior changes
|
|
57
|
+
- Migration requirements
|
|
58
|
+
|
|
59
|
+
### Step 3: Generate Changelog Entry
|
|
60
|
+
Create formatted entry following existing CHANGELOG.md style:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
## v0.13.0 (2025-06-03)
|
|
64
|
+
|
|
65
|
+
### Features
|
|
66
|
+
|
|
67
|
+
- **Multi-Project Management System** - Switch between projects instantly during conversations
|
|
68
|
+
([`993e88a`](https://github.com/basicmachines-co/basic-memory/commit/993e88a))
|
|
69
|
+
- Instant project switching with session context
|
|
70
|
+
- Project-specific operations and isolation
|
|
71
|
+
- Project discovery and management tools
|
|
72
|
+
|
|
73
|
+
- **Advanced Note Editing** - Incremental editing with append, prepend, find/replace, and section operations
|
|
74
|
+
([`6fc3904`](https://github.com/basicmachines-co/basic-memory/commit/6fc3904))
|
|
75
|
+
- `edit_note` tool with multiple operation types
|
|
76
|
+
- Smart frontmatter-aware editing
|
|
77
|
+
- Validation and error handling
|
|
78
|
+
|
|
79
|
+
### Bug Fixes
|
|
80
|
+
|
|
81
|
+
- **#118**: Fix YAML tag formatting to follow standard specification
|
|
82
|
+
([`2dc7e27`](https://github.com/basicmachines-co/basic-memory/commit/2dc7e27))
|
|
83
|
+
|
|
84
|
+
- **#110**: Make --project flag work consistently across CLI commands
|
|
85
|
+
([`02dd91a`](https://github.com/basicmachines-co/basic-memory/commit/02dd91a))
|
|
86
|
+
|
|
87
|
+
### Technical Improvements
|
|
88
|
+
|
|
89
|
+
- **Comprehensive Testing** - 100% test coverage with integration testing
|
|
90
|
+
([`468a22f`](https://github.com/basicmachines-co/basic-memory/commit/468a22f))
|
|
91
|
+
- MCP integration test suite
|
|
92
|
+
- End-to-end testing framework
|
|
93
|
+
- Performance and edge case validation
|
|
94
|
+
|
|
95
|
+
### Breaking Changes
|
|
96
|
+
|
|
97
|
+
- **Database Migration**: Automatic migration from per-project to unified database.
|
|
98
|
+
Data will be re-index from the filesystem, resulting in no data loss.
|
|
99
|
+
- **Configuration Changes**: Projects now synced between config.json and database
|
|
100
|
+
- **Full Backward Compatibility**: All existing setups continue to work seamlessly
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Step 4: Integration
|
|
104
|
+
1. **Update CHANGELOG.md**
|
|
105
|
+
- Insert new entry at top
|
|
106
|
+
- Maintain consistent formatting
|
|
107
|
+
- Include commit links and issue references
|
|
108
|
+
|
|
109
|
+
2. **Validation**
|
|
110
|
+
- Check all major changes are captured
|
|
111
|
+
- Verify commit links work
|
|
112
|
+
- Ensure issue numbers are correct
|
|
113
|
+
|
|
114
|
+
## Smart Analysis Features
|
|
115
|
+
|
|
116
|
+
### Automatic Classification
|
|
117
|
+
- Detect feature additions from file changes
|
|
118
|
+
- Identify bug fixes from commit messages
|
|
119
|
+
- Find breaking changes from code analysis
|
|
120
|
+
- Extract issue numbers from commit messages
|
|
121
|
+
|
|
122
|
+
### Content Enhancement
|
|
123
|
+
- Add context for technical changes
|
|
124
|
+
- Include migration guidance for breaking changes
|
|
125
|
+
- Suggest installation/upgrade instructions
|
|
126
|
+
- Link to relevant documentation
|
|
127
|
+
|
|
128
|
+
## Output Format
|
|
129
|
+
|
|
130
|
+
### For Beta Releases
|
|
131
|
+
```markdown
|
|
132
|
+
## v0.13.0b4 (2025-06-03)
|
|
133
|
+
|
|
134
|
+
### Beta Changes Since v0.13.0b3
|
|
135
|
+
|
|
136
|
+
- Fix FastMCP API compatibility issues
|
|
137
|
+
- Update dependencies to latest versions
|
|
138
|
+
- Resolve setuptools import error
|
|
139
|
+
|
|
140
|
+
### Installation
|
|
141
|
+
```bash
|
|
142
|
+
uv tool install basic-memory --prerelease=allow
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Known Issues
|
|
146
|
+
- [List any known issues for beta testing]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### For Stable Releases
|
|
150
|
+
Full changelog with complete feature list, organized by impact and category.
|
|
151
|
+
|
|
152
|
+
## Context
|
|
153
|
+
- Follows existing CHANGELOG.md format and style
|
|
154
|
+
- Uses conventional commit standards
|
|
155
|
+
- Includes GitHub commit links for traceability
|
|
156
|
+
- Focuses on user-facing changes and value
|
|
157
|
+
- Maintains consistency with previous entries
|