basic-memory 0.2.11__tar.gz → 0.17.0__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.17.0/.claude/commands/release/beta.md +95 -0
- basic_memory-0.17.0/.claude/commands/release/changelog.md +160 -0
- basic_memory-0.17.0/.claude/commands/release/release-check.md +131 -0
- basic_memory-0.17.0/.claude/commands/release/release.md +169 -0
- basic_memory-0.17.0/.claude/commands/spec.md +51 -0
- basic_memory-0.17.0/.claude/commands/test-live.md +622 -0
- basic_memory-0.17.0/.claude/settings.json +5 -0
- basic_memory-0.17.0/.dockerignore +60 -0
- basic_memory-0.17.0/.env.example +28 -0
- basic_memory-0.17.0/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- basic_memory-0.17.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- basic_memory-0.17.0/.github/ISSUE_TEMPLATE/documentation.md +19 -0
- basic_memory-0.17.0/.github/ISSUE_TEMPLATE/feature_request.md +28 -0
- basic_memory-0.17.0/.github/dependabot.yml +12 -0
- basic_memory-0.17.0/.github/workflows/claude-code-review.yml +82 -0
- basic_memory-0.17.0/.github/workflows/claude-issue-triage.yml +71 -0
- basic_memory-0.17.0/.github/workflows/claude.yml +68 -0
- basic_memory-0.17.0/.github/workflows/dev-release.yml +53 -0
- basic_memory-0.17.0/.github/workflows/docker.yml +61 -0
- basic_memory-0.17.0/.github/workflows/release.yml +85 -0
- basic_memory-0.17.0/.github/workflows/test.yml +113 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/.gitignore +12 -0
- basic_memory-0.17.0/CHANGELOG.md +2216 -0
- basic_memory-0.17.0/CLA.md +71 -0
- basic_memory-0.17.0/CLAUDE.md +345 -0
- basic_memory-0.17.0/CONTRIBUTING.md +277 -0
- basic_memory-0.17.0/Dockerfile +46 -0
- basic_memory-0.17.0/PKG-INFO +617 -0
- basic_memory-0.17.0/README.md +571 -0
- basic_memory-0.17.0/SECURITY.md +13 -0
- basic_memory-0.17.0/docker-compose-postgres.yml +42 -0
- basic_memory-0.17.0/docker-compose.yml +83 -0
- basic_memory-0.17.0/docs/Docker.md +365 -0
- basic_memory-0.17.0/docs/ai-assistant-guide-extended.md +3240 -0
- basic_memory-0.17.0/docs/character-handling.md +241 -0
- basic_memory-0.17.0/docs/cloud-cli.md +726 -0
- basic_memory-0.17.0/justfile +271 -0
- basic_memory-0.17.0/llms-install.md +128 -0
- basic_memory-0.17.0/pyproject.toml +143 -0
- basic_memory-0.17.0/smithery.yaml +15 -0
- basic_memory-0.17.0/specs/SPEC-1 Specification-Driven Development Process.md +156 -0
- basic_memory-0.17.0/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +569 -0
- basic_memory-0.17.0/specs/SPEC-11 Basic Memory API Performance Optimization.md +186 -0
- basic_memory-0.17.0/specs/SPEC-12 OpenTelemetry Observability.md +182 -0
- basic_memory-0.17.0/specs/SPEC-13 CLI Authentication with Subscription Validation.md +917 -0
- basic_memory-0.17.0/specs/SPEC-14 Cloud Git Versioning & GitHub Backup.md +210 -0
- basic_memory-0.17.0/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +210 -0
- basic_memory-0.17.0/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +273 -0
- basic_memory-0.17.0/specs/SPEC-16 MCP Cloud Service Consolidation.md +800 -0
- basic_memory-0.17.0/specs/SPEC-17 Semantic Search with ChromaDB.md +1439 -0
- basic_memory-0.17.0/specs/SPEC-18 AI Memory Management Tool.md +528 -0
- basic_memory-0.17.0/specs/SPEC-19 Sync Performance and Memory Optimization.md +1046 -0
- basic_memory-0.17.0/specs/SPEC-2 Slash Commands Reference.md +120 -0
- basic_memory-0.17.0/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +1216 -0
- basic_memory-0.17.0/specs/SPEC-3 Agent Definitions.md +108 -0
- basic_memory-0.17.0/specs/SPEC-4 Notes Web UI Component Architecture.md +311 -0
- basic_memory-0.17.0/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +201 -0
- basic_memory-0.17.0/specs/SPEC-6 Explicit Project Parameter Architecture.md +497 -0
- basic_memory-0.17.0/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +324 -0
- basic_memory-0.17.0/specs/SPEC-8 TigrisFS Integration.md +886 -0
- basic_memory-0.17.0/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +1114 -0
- basic_memory-0.17.0/specs/SPEC-9 Signed Header Tenant Information.md +196 -0
- basic_memory-0.17.0/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +390 -0
- basic_memory-0.17.0/src/basic_memory/__init__.py +7 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0/src/basic_memory/alembic}/alembic.ini +1 -1
- basic_memory-0.17.0/src/basic_memory/alembic/env.py +181 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/migrations.py +4 -9
- basic_memory-0.17.0/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +131 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +51 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +120 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +112 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +49 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +49 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +56 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +44 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +113 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +37 -0
- basic_memory-0.17.0/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +239 -0
- basic_memory-0.17.0/src/basic_memory/api/app.py +131 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/__init__.py +11 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/directory_router.py +84 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/importer_router.py +152 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/knowledge_router.py +318 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/management_router.py +80 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/memory_router.py +90 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/project_router.py +448 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/prompt_router.py +260 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/resource_router.py +249 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/search_router.py +36 -0
- basic_memory-0.17.0/src/basic_memory/api/routers/utils.py +169 -0
- basic_memory-0.17.0/src/basic_memory/api/template_loader.py +292 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/__init__.py +35 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/__init__.py +21 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/directory_router.py +93 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/importer_router.py +182 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/knowledge_router.py +413 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/memory_router.py +130 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/project_router.py +342 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/prompt_router.py +270 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/resource_router.py +286 -0
- basic_memory-0.17.0/src/basic_memory/api/v2/routers/search_router.py +73 -0
- basic_memory-0.17.0/src/basic_memory/cli/app.py +84 -0
- basic_memory-0.17.0/src/basic_memory/cli/auth.py +277 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/__init__.py +18 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/__init__.py +6 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/api_client.py +112 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/bisync_commands.py +110 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/cloud_utils.py +101 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/core_commands.py +195 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_commands.py +371 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_config.py +110 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_installer.py +263 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/upload.py +233 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/upload_command.py +124 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/command_utils.py +77 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/db.py +44 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/format.py +198 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/import_chatgpt.py +84 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/import_claude_conversations.py +87 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/import_claude_projects.py +86 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/import_memory_json.py +87 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/mcp.py +76 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/project.py +889 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/cli/commands/status.py +49 -31
- basic_memory-0.17.0/src/basic_memory/cli/commands/telemetry.py +81 -0
- basic_memory-0.17.0/src/basic_memory/cli/commands/tool.py +341 -0
- basic_memory-0.17.0/src/basic_memory/cli/main.py +28 -0
- basic_memory-0.17.0/src/basic_memory/config.py +616 -0
- basic_memory-0.17.0/src/basic_memory/db.py +394 -0
- basic_memory-0.17.0/src/basic_memory/deps.py +705 -0
- basic_memory-0.17.0/src/basic_memory/file_utils.py +478 -0
- basic_memory-0.17.0/src/basic_memory/ignore_utils.py +297 -0
- basic_memory-0.17.0/src/basic_memory/importers/__init__.py +27 -0
- basic_memory-0.17.0/src/basic_memory/importers/base.py +79 -0
- basic_memory-0.17.0/src/basic_memory/importers/chatgpt_importer.py +232 -0
- basic_memory-0.17.0/src/basic_memory/importers/claude_conversations_importer.py +180 -0
- basic_memory-0.17.0/src/basic_memory/importers/claude_projects_importer.py +148 -0
- basic_memory-0.17.0/src/basic_memory/importers/memory_json_importer.py +108 -0
- basic_memory-0.17.0/src/basic_memory/importers/utils.py +61 -0
- basic_memory-0.17.0/src/basic_memory/markdown/entity_parser.py +279 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/markdown_processor.py +26 -7
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/plugins.py +43 -23
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/schemas.py +1 -1
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/utils.py +38 -14
- basic_memory-0.17.0/src/basic_memory/mcp/async_client.py +139 -0
- basic_memory-0.17.0/src/basic_memory/mcp/project_context.py +141 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/__init__.py +19 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/ai_assistant_guide.py +70 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/continue_conversation.py +62 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/recent_activity.py +188 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/search.py +57 -0
- basic_memory-0.17.0/src/basic_memory/mcp/prompts/utils.py +162 -0
- basic_memory-0.17.0/src/basic_memory/mcp/resources/ai_assistant_guide.md +283 -0
- basic_memory-0.17.0/src/basic_memory/mcp/resources/project_info.py +71 -0
- basic_memory-0.17.0/src/basic_memory/mcp/server.py +81 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/__init__.py +48 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/build_context.py +120 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/canvas.py +152 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/chatgpt_tools.py +190 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/delete_note.py +242 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/edit_note.py +324 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/list_directory.py +168 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/move_note.py +551 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/project_management.py +201 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/read_content.py +281 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/read_note.py +267 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/recent_activity.py +534 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/search.py +385 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/utils.py +540 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/view_note.py +78 -0
- basic_memory-0.17.0/src/basic_memory/mcp/tools/write_note.py +230 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/__init__.py +3 -2
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/knowledge.py +76 -17
- basic_memory-0.17.0/src/basic_memory/models/project.py +87 -0
- basic_memory-0.17.0/src/basic_memory/models/search.py +85 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/__init__.py +2 -0
- basic_memory-0.17.0/src/basic_memory/repository/entity_repository.py +503 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/observation_repository.py +36 -3
- basic_memory-0.17.0/src/basic_memory/repository/postgres_search_repository.py +379 -0
- basic_memory-0.17.0/src/basic_memory/repository/project_info_repository.py +10 -0
- basic_memory-0.17.0/src/basic_memory/repository/project_repository.py +128 -0
- basic_memory-0.17.0/src/basic_memory/repository/relation_repository.py +146 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/repository.py +148 -29
- basic_memory-0.17.0/src/basic_memory/repository/search_index_row.py +95 -0
- basic_memory-0.17.0/src/basic_memory/repository/search_repository.py +94 -0
- basic_memory-0.17.0/src/basic_memory/repository/search_repository_base.py +241 -0
- basic_memory-0.17.0/src/basic_memory/repository/sqlite_search_repository.py +439 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/__init__.py +22 -9
- basic_memory-0.17.0/src/basic_memory/schemas/base.py +297 -0
- basic_memory-0.17.0/src/basic_memory/schemas/cloud.py +50 -0
- basic_memory-0.17.0/src/basic_memory/schemas/directory.py +30 -0
- basic_memory-0.17.0/src/basic_memory/schemas/importer.py +35 -0
- basic_memory-0.17.0/src/basic_memory/schemas/memory.py +285 -0
- basic_memory-0.17.0/src/basic_memory/schemas/project_info.py +212 -0
- basic_memory-0.17.0/src/basic_memory/schemas/prompt.py +90 -0
- basic_memory-0.17.0/src/basic_memory/schemas/request.py +112 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/response.py +9 -1
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/search.py +38 -35
- basic_memory-0.17.0/src/basic_memory/schemas/sync_report.py +72 -0
- basic_memory-0.17.0/src/basic_memory/schemas/v2/__init__.py +27 -0
- basic_memory-0.17.0/src/basic_memory/schemas/v2/entity.py +129 -0
- basic_memory-0.17.0/src/basic_memory/schemas/v2/resource.py +46 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/__init__.py +2 -1
- basic_memory-0.17.0/src/basic_memory/services/context_service.py +601 -0
- basic_memory-0.17.0/src/basic_memory/services/directory_service.py +308 -0
- basic_memory-0.17.0/src/basic_memory/services/entity_service.py +864 -0
- basic_memory-0.17.0/src/basic_memory/services/exceptions.py +37 -0
- basic_memory-0.17.0/src/basic_memory/services/file_service.py +541 -0
- basic_memory-0.17.0/src/basic_memory/services/initialization.py +216 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/link_resolver.py +51 -56
- basic_memory-0.17.0/src/basic_memory/services/project_service.py +880 -0
- basic_memory-0.17.0/src/basic_memory/services/search_service.py +404 -0
- basic_memory-0.17.0/src/basic_memory/sync/__init__.py +6 -0
- basic_memory-0.17.0/src/basic_memory/sync/background_sync.py +26 -0
- basic_memory-0.17.0/src/basic_memory/sync/sync_service.py +1259 -0
- basic_memory-0.17.0/src/basic_memory/sync/watch_service.py +510 -0
- basic_memory-0.17.0/src/basic_memory/telemetry.py +249 -0
- basic_memory-0.17.0/src/basic_memory/templates/prompts/continue_conversation.hbs +110 -0
- basic_memory-0.17.0/src/basic_memory/templates/prompts/search.hbs +101 -0
- basic_memory-0.17.0/src/basic_memory/utils.py +468 -0
- basic_memory-0.17.0/test-int/BENCHMARKS.md +139 -0
- basic_memory-0.17.0/test-int/cli/test_project_commands_integration.py +165 -0
- basic_memory-0.17.0/test-int/cli/test_version_integration.py +15 -0
- basic_memory-0.17.0/test-int/conftest.py +349 -0
- basic_memory-0.17.0/test-int/mcp/test_build_context_underscore.py +171 -0
- basic_memory-0.17.0/test-int/mcp/test_build_context_validation.py +188 -0
- basic_memory-0.17.0/test-int/mcp/test_chatgpt_tools_integration.py +455 -0
- basic_memory-0.17.0/test-int/mcp/test_default_project_mode_integration.py +367 -0
- basic_memory-0.17.0/test-int/mcp/test_delete_note_integration.py +455 -0
- basic_memory-0.17.0/test-int/mcp/test_edit_note_integration.py +639 -0
- basic_memory-0.17.0/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +68 -0
- basic_memory-0.17.0/test-int/mcp/test_list_directory_integration.py +578 -0
- basic_memory-0.17.0/test-int/mcp/test_move_note_integration.py +641 -0
- basic_memory-0.17.0/test-int/mcp/test_project_management_integration.py +580 -0
- basic_memory-0.17.0/test-int/mcp/test_project_state_sync_integration.py +82 -0
- basic_memory-0.17.0/test-int/mcp/test_read_content_integration.py +384 -0
- basic_memory-0.17.0/test-int/mcp/test_read_note_integration.py +102 -0
- basic_memory-0.17.0/test-int/mcp/test_search_integration.py +501 -0
- basic_memory-0.17.0/test-int/mcp/test_single_project_mcp_integration.py +340 -0
- basic_memory-0.17.0/test-int/mcp/test_write_note_integration.py +474 -0
- basic_memory-0.17.0/test-int/test_db_wal_mode.py +166 -0
- basic_memory-0.17.0/test-int/test_disable_permalinks_integration.py +156 -0
- basic_memory-0.17.0/tests/Non-MarkdownFileSupport.pdf +0 -0
- basic_memory-0.17.0/tests/README.md +172 -0
- basic_memory-0.17.0/tests/Screenshot.png +0 -0
- basic_memory-0.17.0/tests/__init__.py +4 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/api/conftest.py +17 -3
- basic_memory-0.17.0/tests/api/test_async_client.py +56 -0
- basic_memory-0.17.0/tests/api/test_continue_conversation_template.py +145 -0
- basic_memory-0.17.0/tests/api/test_directory_router.py +412 -0
- basic_memory-0.17.0/tests/api/test_importer_router.py +465 -0
- basic_memory-0.17.0/tests/api/test_knowledge_router.py +1325 -0
- basic_memory-0.17.0/tests/api/test_management_router.py +211 -0
- basic_memory-0.17.0/tests/api/test_memory_router.py +146 -0
- basic_memory-0.17.0/tests/api/test_project_router.py +841 -0
- basic_memory-0.17.0/tests/api/test_project_router_operations.py +55 -0
- basic_memory-0.17.0/tests/api/test_prompt_router.py +155 -0
- basic_memory-0.17.0/tests/api/test_relation_background_resolution.py +40 -0
- basic_memory-0.17.0/tests/api/test_resource_router.py +454 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/api/test_search_router.py +46 -44
- basic_memory-0.17.0/tests/api/test_search_template.py +158 -0
- basic_memory-0.17.0/tests/api/test_template_loader.py +219 -0
- basic_memory-0.17.0/tests/api/test_template_loader_helpers.py +203 -0
- basic_memory-0.17.0/tests/api/v2/__init__.py +1 -0
- basic_memory-0.17.0/tests/api/v2/conftest.py +21 -0
- basic_memory-0.17.0/tests/api/v2/test_directory_router.py +129 -0
- basic_memory-0.17.0/tests/api/v2/test_importer_router.py +530 -0
- basic_memory-0.17.0/tests/api/v2/test_knowledge_router.py +407 -0
- basic_memory-0.17.0/tests/api/v2/test_memory_router.py +301 -0
- basic_memory-0.17.0/tests/api/v2/test_project_router.py +334 -0
- basic_memory-0.17.0/tests/api/v2/test_prompt_router.py +212 -0
- basic_memory-0.17.0/tests/api/v2/test_resource_router.py +267 -0
- basic_memory-0.17.0/tests/api/v2/test_search_router.py +289 -0
- basic_memory-0.17.0/tests/cli/conftest.py +58 -0
- basic_memory-0.17.0/tests/cli/test_cli_exit.py +48 -0
- basic_memory-0.17.0/tests/cli/test_cli_tool_exit.py +85 -0
- basic_memory-0.17.0/tests/cli/test_cli_tools.py +497 -0
- basic_memory-0.17.0/tests/cli/test_cloud_authentication.py +239 -0
- basic_memory-0.17.0/tests/cli/test_ignore_utils.py +315 -0
- basic_memory-0.17.0/tests/cli/test_import_chatgpt.py +199 -0
- basic_memory-0.17.0/tests/cli/test_import_claude_conversations.py +203 -0
- basic_memory-0.17.0/tests/cli/test_import_claude_projects.py +142 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/cli/test_import_memory_json.py +50 -29
- basic_memory-0.17.0/tests/cli/test_project_add_with_local_path.py +155 -0
- basic_memory-0.17.0/tests/cli/test_upload.py +512 -0
- basic_memory-0.17.0/tests/conftest.py +603 -0
- basic_memory-0.17.0/tests/db/test_issue_254_foreign_key_constraints.py +170 -0
- basic_memory-0.17.0/tests/importers/test_conversation_indexing.py +114 -0
- basic_memory-0.17.0/tests/importers/test_importer_base.py +130 -0
- basic_memory-0.17.0/tests/importers/test_importer_utils.py +60 -0
- basic_memory-0.17.0/tests/markdown/test_date_frontmatter_parsing.py +236 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_entity_parser.py +48 -14
- basic_memory-0.17.0/tests/markdown/test_entity_parser_error_handling.py +293 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_markdown_plugins.py +86 -2
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_markdown_processor.py +5 -5
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_parser_edge_cases.py +1 -1
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/mcp/conftest.py +11 -9
- basic_memory-0.17.0/tests/mcp/test_obsidian_yaml_formatting.py +189 -0
- basic_memory-0.17.0/tests/mcp/test_permalink_collision_file_overwrite.py +385 -0
- basic_memory-0.17.0/tests/mcp/test_prompts.py +181 -0
- basic_memory-0.17.0/tests/mcp/test_resources.py +19 -0
- basic_memory-0.17.0/tests/mcp/test_tool_build_context.py +144 -0
- basic_memory-0.17.0/tests/mcp/test_tool_canvas.py +287 -0
- basic_memory-0.17.0/tests/mcp/test_tool_delete_note.py +98 -0
- basic_memory-0.17.0/tests/mcp/test_tool_edit_note.py +458 -0
- basic_memory-0.17.0/tests/mcp/test_tool_list_directory.py +223 -0
- basic_memory-0.17.0/tests/mcp/test_tool_move_note.py +953 -0
- basic_memory-0.17.0/tests/mcp/test_tool_read_content.py +495 -0
- basic_memory-0.17.0/tests/mcp/test_tool_read_note.py +467 -0
- basic_memory-0.17.0/tests/mcp/test_tool_recent_activity.py +135 -0
- basic_memory-0.17.0/tests/mcp/test_tool_resource.py +227 -0
- basic_memory-0.17.0/tests/mcp/test_tool_search.py +317 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/mcp/test_tool_utils.py +52 -8
- basic_memory-0.17.0/tests/mcp/test_tool_view_note.py +288 -0
- basic_memory-0.17.0/tests/mcp/test_tool_write_note.py +1138 -0
- basic_memory-0.17.0/tests/mcp/test_tool_write_note_kebab_filenames.py +392 -0
- basic_memory-0.17.0/tests/mcp/tools/test_chatgpt_tools.py +228 -0
- basic_memory-0.17.0/tests/repository/test_entity_repository.py +1054 -0
- basic_memory-0.17.0/tests/repository/test_entity_repository_upsert.py +468 -0
- basic_memory-0.17.0/tests/repository/test_entity_upsert_issue_187.py +135 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_observation_repository.py +132 -8
- basic_memory-0.17.0/tests/repository/test_project_info_repository.py +36 -0
- basic_memory-0.17.0/tests/repository/test_project_repository.py +297 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_relation_repository.py +162 -5
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_repository.py +8 -4
- basic_memory-0.17.0/tests/repository/test_search_repository.py +686 -0
- basic_memory-0.17.0/tests/repository/test_search_repository_edit_bug_fix.py +271 -0
- basic_memory-0.17.0/tests/schemas/test_base_timeframe_minimum.py +104 -0
- basic_memory-0.17.0/tests/schemas/test_memory_serialization.py +258 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/schemas/test_memory_url.py +21 -1
- basic_memory-0.17.0/tests/schemas/test_memory_url_validation.py +274 -0
- basic_memory-0.17.0/tests/schemas/test_schemas.py +510 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/schemas/test_search.py +20 -27
- basic_memory-0.17.0/tests/services/test_context_service.py +335 -0
- basic_memory-0.17.0/tests/services/test_directory_service.py +258 -0
- basic_memory-0.17.0/tests/services/test_entity_service.py +1941 -0
- basic_memory-0.17.0/tests/services/test_entity_service_disable_permalinks.py +220 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/services/test_file_service.py +74 -0
- basic_memory-0.17.0/tests/services/test_initialization.py +122 -0
- basic_memory-0.17.0/tests/services/test_link_resolver.py +359 -0
- basic_memory-0.17.0/tests/services/test_project_removal_bug.py +138 -0
- basic_memory-0.17.0/tests/services/test_project_service.py +1358 -0
- basic_memory-0.17.0/tests/services/test_project_service_operations.py +111 -0
- basic_memory-0.17.0/tests/services/test_search_service.py +936 -0
- basic_memory-0.17.0/tests/sync/test_character_conflicts.py +343 -0
- basic_memory-0.17.0/tests/sync/test_sync_service.py +2119 -0
- basic_memory-0.17.0/tests/sync/test_sync_service_incremental.py +790 -0
- basic_memory-0.17.0/tests/sync/test_sync_wikilink_issue.py +83 -0
- basic_memory-0.17.0/tests/sync/test_tmp_files.py +162 -0
- basic_memory-0.17.0/tests/sync/test_watch_service.py +529 -0
- basic_memory-0.17.0/tests/sync/test_watch_service_edge_cases.py +281 -0
- basic_memory-0.17.0/tests/sync/test_watch_service_reload.py +252 -0
- basic_memory-0.17.0/tests/test_config.py +598 -0
- basic_memory-0.17.0/tests/test_deps.py +206 -0
- basic_memory-0.17.0/tests/test_production_cascade_delete.py +353 -0
- basic_memory-0.17.0/tests/test_rclone_commands.py +647 -0
- basic_memory-0.17.0/tests/test_telemetry.py +276 -0
- basic_memory-0.17.0/tests/utils/test_file_utils.py +550 -0
- basic_memory-0.17.0/tests/utils/test_frontmatter_obsidian_compatible.py +280 -0
- basic_memory-0.17.0/tests/utils/test_parse_tags.py +68 -0
- basic_memory-0.17.0/tests/utils/test_permalink_formatting.py +123 -0
- basic_memory-0.17.0/tests/utils/test_timezone_utils.py +96 -0
- basic_memory-0.17.0/tests/utils/test_utf8_handling.py +197 -0
- basic_memory-0.17.0/tests/utils/test_validate_project_path.py +413 -0
- basic_memory-0.17.0/uv.lock +2355 -0
- basic_memory-0.2.11/.github/workflows/release.yml +0 -97
- basic_memory-0.2.11/.github/workflows/test.yml +0 -47
- basic_memory-0.2.11/CHANGELOG.md +0 -172
- basic_memory-0.2.11/CONTRIBUTING.md +0 -17
- basic_memory-0.2.11/Makefile +0 -42
- basic_memory-0.2.11/PKG-INFO +0 -291
- basic_memory-0.2.11/README.md +0 -258
- basic_memory-0.2.11/basic-memory.md +0 -1419
- basic_memory-0.2.11/installer/Basic.icns +0 -0
- basic_memory-0.2.11/installer/README.md +0 -16
- basic_memory-0.2.11/installer/icon.svg +0 -64
- basic_memory-0.2.11/installer/installer.py +0 -89
- basic_memory-0.2.11/installer/make_icons.sh +0 -27
- basic_memory-0.2.11/installer/setup.py +0 -50
- basic_memory-0.2.11/memory.json +0 -378
- basic_memory-0.2.11/pyproject.toml +0 -100
- basic_memory-0.2.11/scripts/install.sh +0 -36
- basic_memory-0.2.11/src/basic_memory/__init__.py +0 -3
- basic_memory-0.2.11/src/basic_memory/alembic/README +0 -1
- basic_memory-0.2.11/src/basic_memory/alembic/env.py +0 -75
- basic_memory-0.2.11/src/basic_memory/api/app.py +0 -66
- basic_memory-0.2.11/src/basic_memory/api/routers/__init__.py +0 -8
- basic_memory-0.2.11/src/basic_memory/api/routers/knowledge_router.py +0 -170
- basic_memory-0.2.11/src/basic_memory/api/routers/memory_router.py +0 -129
- basic_memory-0.2.11/src/basic_memory/api/routers/resource_router.py +0 -34
- basic_memory-0.2.11/src/basic_memory/api/routers/search_router.py +0 -28
- basic_memory-0.2.11/src/basic_memory/cli/app.py +0 -3
- basic_memory-0.2.11/src/basic_memory/cli/commands/__init__.py +0 -5
- basic_memory-0.2.11/src/basic_memory/cli/commands/db.py +0 -25
- basic_memory-0.2.11/src/basic_memory/cli/commands/import_memory_json.py +0 -143
- basic_memory-0.2.11/src/basic_memory/cli/commands/mcp.py +0 -20
- basic_memory-0.2.11/src/basic_memory/cli/commands/sync.py +0 -203
- basic_memory-0.2.11/src/basic_memory/cli/main.py +0 -14
- basic_memory-0.2.11/src/basic_memory/config.py +0 -57
- basic_memory-0.2.11/src/basic_memory/db.py +0 -152
- basic_memory-0.2.11/src/basic_memory/deps.py +0 -181
- basic_memory-0.2.11/src/basic_memory/file_utils.py +0 -214
- basic_memory-0.2.11/src/basic_memory/markdown/entity_parser.py +0 -120
- basic_memory-0.2.11/src/basic_memory/mcp/async_client.py +0 -8
- basic_memory-0.2.11/src/basic_memory/mcp/server.py +0 -15
- basic_memory-0.2.11/src/basic_memory/mcp/tools/__init__.py +0 -36
- basic_memory-0.2.11/src/basic_memory/mcp/tools/knowledge.py +0 -56
- basic_memory-0.2.11/src/basic_memory/mcp/tools/memory.py +0 -151
- basic_memory-0.2.11/src/basic_memory/mcp/tools/notes.py +0 -122
- basic_memory-0.2.11/src/basic_memory/mcp/tools/search.py +0 -29
- basic_memory-0.2.11/src/basic_memory/mcp/tools/utils.py +0 -154
- basic_memory-0.2.11/src/basic_memory/models/search.py +0 -34
- basic_memory-0.2.11/src/basic_memory/repository/entity_repository.py +0 -92
- basic_memory-0.2.11/src/basic_memory/repository/relation_repository.py +0 -71
- basic_memory-0.2.11/src/basic_memory/repository/search_repository.py +0 -261
- basic_memory-0.2.11/src/basic_memory/schemas/base.py +0 -178
- basic_memory-0.2.11/src/basic_memory/schemas/discovery.py +0 -28
- basic_memory-0.2.11/src/basic_memory/schemas/memory.py +0 -113
- basic_memory-0.2.11/src/basic_memory/schemas/request.py +0 -58
- basic_memory-0.2.11/src/basic_memory/services/context_service.py +0 -280
- basic_memory-0.2.11/src/basic_memory/services/entity_service.py +0 -294
- basic_memory-0.2.11/src/basic_memory/services/exceptions.py +0 -16
- basic_memory-0.2.11/src/basic_memory/services/file_service.py +0 -176
- basic_memory-0.2.11/src/basic_memory/services/search_service.py +0 -225
- basic_memory-0.2.11/src/basic_memory/sync/__init__.py +0 -5
- basic_memory-0.2.11/src/basic_memory/sync/file_change_scanner.py +0 -158
- basic_memory-0.2.11/src/basic_memory/sync/sync_service.py +0 -165
- basic_memory-0.2.11/src/basic_memory/sync/utils.py +0 -34
- basic_memory-0.2.11/src/basic_memory/sync/watch_service.py +0 -218
- basic_memory-0.2.11/src/basic_memory/utils.py +0 -87
- basic_memory-0.2.11/tests/api/test_knowledge_router.py +0 -482
- basic_memory-0.2.11/tests/api/test_memory_router.py +0 -106
- basic_memory-0.2.11/tests/api/test_resource_router.py +0 -91
- basic_memory-0.2.11/tests/cli/test_status.py +0 -160
- basic_memory-0.2.11/tests/cli/test_sync.py +0 -109
- basic_memory-0.2.11/tests/conftest.py +0 -347
- basic_memory-0.2.11/tests/edit_file_test.py +0 -19
- basic_memory-0.2.11/tests/mcp/test_tool_get_entity.py +0 -45
- basic_memory-0.2.11/tests/mcp/test_tool_knowledge.py +0 -87
- basic_memory-0.2.11/tests/mcp/test_tool_memory.py +0 -147
- basic_memory-0.2.11/tests/mcp/test_tool_notes.py +0 -238
- basic_memory-0.2.11/tests/mcp/test_tool_search.py +0 -65
- basic_memory-0.2.11/tests/repository/test_entity_repository.py +0 -408
- basic_memory-0.2.11/tests/schemas/test_schemas.py +0 -178
- basic_memory-0.2.11/tests/services/test_context_service.py +0 -159
- basic_memory-0.2.11/tests/services/test_entity_service.py +0 -504
- basic_memory-0.2.11/tests/services/test_link_resolver.py +0 -144
- basic_memory-0.2.11/tests/services/test_search_service.py +0 -185
- basic_memory-0.2.11/tests/sync/test_file_change_scanner.py +0 -245
- basic_memory-0.2.11/tests/sync/test_sync_service.py +0 -840
- basic_memory-0.2.11/tests/sync/test_watch_service.py +0 -121
- basic_memory-0.2.11/tests/test_basic_memory.py +0 -8
- basic_memory-0.2.11/tests/utils/test_file_utils.py +0 -243
- basic_memory-0.2.11/tests/utils/test_permalink_formatting.py +0 -67
- basic_memory-0.2.11/uv.lock +0 -1410
- {basic_memory-0.2.11 → basic_memory-0.17.0}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/.python-version +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/CITATION.cff +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/LICENSE +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_task_detection.py +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# /beta - Create Beta Release
|
|
2
|
+
|
|
3
|
+
Create a new beta release using the automated justfile target with quality checks and tagging.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/beta <version>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Beta version like `v0.13.2b1` or `v0.13.2rc1`
|
|
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 Validation
|
|
18
|
+
1. Verify version format matches `v\d+\.\d+\.\d+(b\d+|rc\d+)` pattern
|
|
19
|
+
2. Check current git status for uncommitted changes
|
|
20
|
+
3. Verify we're on the `main` branch
|
|
21
|
+
4. Confirm no existing tag with this version
|
|
22
|
+
|
|
23
|
+
### Step 2: Use Justfile Automation
|
|
24
|
+
Execute the automated beta release process:
|
|
25
|
+
```bash
|
|
26
|
+
just beta <version>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The justfile target handles:
|
|
30
|
+
- ✅ Beta version format validation (supports b1, b2, rc1, etc.)
|
|
31
|
+
- ✅ Git status and branch checks
|
|
32
|
+
- ✅ Quality checks (`just check` - lint, format, type-check, tests)
|
|
33
|
+
- ✅ Version update in `src/basic_memory/__init__.py`
|
|
34
|
+
- ✅ Automatic commit with proper message
|
|
35
|
+
- ✅ Tag creation and pushing to GitHub
|
|
36
|
+
- ✅ Beta release workflow trigger
|
|
37
|
+
|
|
38
|
+
### Step 3: Monitor Beta Release
|
|
39
|
+
1. Check GitHub Actions workflow starts successfully
|
|
40
|
+
2. Monitor workflow at: https://github.com/basicmachines-co/basic-memory/actions
|
|
41
|
+
3. Verify PyPI pre-release publication
|
|
42
|
+
4. Test beta installation: `uv tool install basic-memory --pre`
|
|
43
|
+
|
|
44
|
+
### Step 4: Beta Testing Instructions
|
|
45
|
+
Provide users with beta testing instructions:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Install/upgrade to beta
|
|
49
|
+
uv tool install basic-memory --pre
|
|
50
|
+
|
|
51
|
+
# Or upgrade existing installation
|
|
52
|
+
uv tool upgrade basic-memory --prerelease=allow
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Version Guidelines
|
|
56
|
+
- **First beta**: `v0.13.2b1`
|
|
57
|
+
- **Subsequent betas**: `v0.13.2b2`, `v0.13.2b3`, etc.
|
|
58
|
+
- **Release candidates**: `v0.13.2rc1`, `v0.13.2rc2`, etc.
|
|
59
|
+
- **Final release**: `v0.13.2` (use `/release` command)
|
|
60
|
+
|
|
61
|
+
## Error Handling
|
|
62
|
+
- If `just beta` fails, examine the error output for specific issues
|
|
63
|
+
- If quality checks fail, fix issues and retry
|
|
64
|
+
- If version format is invalid, correct and retry
|
|
65
|
+
- If tag already exists, increment version number
|
|
66
|
+
|
|
67
|
+
## Success Output
|
|
68
|
+
```
|
|
69
|
+
✅ Beta Release v0.13.2b1 Created Successfully!
|
|
70
|
+
|
|
71
|
+
🏷️ Tag: v0.13.2b1
|
|
72
|
+
🚀 GitHub Actions: Running
|
|
73
|
+
📦 PyPI: Will be available in ~5 minutes as pre-release
|
|
74
|
+
|
|
75
|
+
Install/test with:
|
|
76
|
+
uv tool install basic-memory --pre
|
|
77
|
+
|
|
78
|
+
Monitor release: https://github.com/basicmachines-co/basic-memory/actions
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Beta Testing Workflow
|
|
82
|
+
1. **Create beta**: Use `/beta v0.13.2b1`
|
|
83
|
+
2. **Test features**: Install and validate new functionality
|
|
84
|
+
3. **Fix issues**: Address bugs found during testing
|
|
85
|
+
4. **Iterate**: Create `v0.13.2b2` if needed
|
|
86
|
+
5. **Release candidate**: Create `v0.13.2rc1` when stable
|
|
87
|
+
6. **Final release**: Use `/release v0.13.2` when ready
|
|
88
|
+
|
|
89
|
+
## Context
|
|
90
|
+
- Beta releases are pre-releases for testing new features
|
|
91
|
+
- Automatically published to PyPI with pre-release flag
|
|
92
|
+
- Uses the automated justfile target for consistency
|
|
93
|
+
- Version is automatically updated in `__init__.py`
|
|
94
|
+
- Ideal for validating changes before stable release
|
|
95
|
+
- Supports both beta (b1, b2) and release candidate (rc1, rc2) versions
|
|
@@ -0,0 +1,160 @@
|
|
|
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.14.0` or `v0.14.0b1`
|
|
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
|
+
Example:
|
|
63
|
+
```markdown
|
|
64
|
+
## <version> (<date>)
|
|
65
|
+
|
|
66
|
+
### Features
|
|
67
|
+
|
|
68
|
+
- **Multi-Project Management System** - Switch between projects instantly during conversations
|
|
69
|
+
([`993e88a`](https://github.com/basicmachines-co/basic-memory/commit/993e88a))
|
|
70
|
+
- Instant project switching with session context
|
|
71
|
+
- Project-specific operations and isolation
|
|
72
|
+
- Project discovery and management tools
|
|
73
|
+
|
|
74
|
+
- **Advanced Note Editing** - Incremental editing with append, prepend, find/replace, and section operations
|
|
75
|
+
([`6fc3904`](https://github.com/basicmachines-co/basic-memory/commit/6fc3904))
|
|
76
|
+
- `edit_note` tool with multiple operation types
|
|
77
|
+
- Smart frontmatter-aware editing
|
|
78
|
+
- Validation and error handling
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
- **#118**: Fix YAML tag formatting to follow standard specification
|
|
83
|
+
([`2dc7e27`](https://github.com/basicmachines-co/basic-memory/commit/2dc7e27))
|
|
84
|
+
|
|
85
|
+
- **#110**: Make --project flag work consistently across CLI commands
|
|
86
|
+
([`02dd91a`](https://github.com/basicmachines-co/basic-memory/commit/02dd91a))
|
|
87
|
+
|
|
88
|
+
### Technical Improvements
|
|
89
|
+
|
|
90
|
+
- **Comprehensive Testing** - 100% test coverage with integration testing
|
|
91
|
+
([`468a22f`](https://github.com/basicmachines-co/basic-memory/commit/468a22f))
|
|
92
|
+
- MCP integration test suite
|
|
93
|
+
- End-to-end testing framework
|
|
94
|
+
- Performance and edge case validation
|
|
95
|
+
|
|
96
|
+
### Breaking Changes
|
|
97
|
+
|
|
98
|
+
- **Database Migration**: Automatic migration from per-project to unified database.
|
|
99
|
+
Data will be re-index from the filesystem, resulting in no data loss.
|
|
100
|
+
- **Configuration Changes**: Projects now synced between config.json and database
|
|
101
|
+
- **Full Backward Compatibility**: All existing setups continue to work seamlessly
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Step 4: Integration
|
|
105
|
+
1. **Update CHANGELOG.md**
|
|
106
|
+
- Insert new entry at top
|
|
107
|
+
- Maintain consistent formatting
|
|
108
|
+
- Include commit links and issue references
|
|
109
|
+
|
|
110
|
+
2. **Validation**
|
|
111
|
+
- Check all major changes are captured
|
|
112
|
+
- Verify commit links work
|
|
113
|
+
- Ensure issue numbers are correct
|
|
114
|
+
|
|
115
|
+
## Smart Analysis Features
|
|
116
|
+
|
|
117
|
+
### Automatic Classification
|
|
118
|
+
- Detect feature additions from file changes
|
|
119
|
+
- Identify bug fixes from commit messages
|
|
120
|
+
- Find breaking changes from code analysis
|
|
121
|
+
- Extract issue numbers from commit messages
|
|
122
|
+
|
|
123
|
+
### Content Enhancement
|
|
124
|
+
- Add context for technical changes
|
|
125
|
+
- Include migration guidance for breaking changes
|
|
126
|
+
- Suggest installation/upgrade instructions
|
|
127
|
+
- Link to relevant documentation
|
|
128
|
+
|
|
129
|
+
## Output Format
|
|
130
|
+
|
|
131
|
+
### For Beta Releases
|
|
132
|
+
|
|
133
|
+
Example:
|
|
134
|
+
```markdown
|
|
135
|
+
## v0.13.0b4 (2025-06-03)
|
|
136
|
+
|
|
137
|
+
### Beta Changes Since v0.13.0b3
|
|
138
|
+
|
|
139
|
+
- Fix FastMCP API compatibility issues
|
|
140
|
+
- Update dependencies to latest versions
|
|
141
|
+
- Resolve setuptools import error
|
|
142
|
+
|
|
143
|
+
### Installation
|
|
144
|
+
```bash
|
|
145
|
+
uv tool install basic-memory --prerelease=allow
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Known Issues
|
|
149
|
+
- [List any known issues for beta testing]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### For Stable Releases
|
|
153
|
+
Full changelog with complete feature list, organized by impact and category.
|
|
154
|
+
|
|
155
|
+
## Context
|
|
156
|
+
- Follows existing CHANGELOG.md format and style
|
|
157
|
+
- Uses conventional commit standards
|
|
158
|
+
- Includes GitHub commit links for traceability
|
|
159
|
+
- Focuses on user-facing changes and value
|
|
160
|
+
- Maintains consistency with previous entries
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# /release-check - Pre-flight Release Validation
|
|
2
|
+
|
|
3
|
+
Comprehensive pre-flight check for release readiness without making any changes.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/release-check [version]
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (optional): Version to validate like `v0.13.0`. If not provided, determines from context.
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert QA engineer for the Basic Memory project. When the user runs `/release-check`, execute the following validation steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Environment Validation
|
|
18
|
+
1. **Git Status Check**
|
|
19
|
+
- Verify working directory is clean
|
|
20
|
+
- Confirm on `main` branch
|
|
21
|
+
- Check if ahead/behind origin
|
|
22
|
+
|
|
23
|
+
2. **Version Validation**
|
|
24
|
+
- Validate version format if provided
|
|
25
|
+
- Check for existing tags with same version
|
|
26
|
+
- Verify version increments properly from last release
|
|
27
|
+
|
|
28
|
+
### Step 2: Code Quality Gates
|
|
29
|
+
1. **Test Suite Validation**
|
|
30
|
+
```bash
|
|
31
|
+
just test
|
|
32
|
+
```
|
|
33
|
+
- All tests must pass
|
|
34
|
+
- Check test coverage (target: 95%+)
|
|
35
|
+
- Validate no skipped critical tests
|
|
36
|
+
|
|
37
|
+
2. **Code Quality Checks**
|
|
38
|
+
```bash
|
|
39
|
+
just lint
|
|
40
|
+
just type-check
|
|
41
|
+
```
|
|
42
|
+
- No linting errors
|
|
43
|
+
- No type checking errors
|
|
44
|
+
- Code formatting is consistent
|
|
45
|
+
|
|
46
|
+
### Step 3: Documentation Validation
|
|
47
|
+
1. **Changelog Check**
|
|
48
|
+
- CHANGELOG.md contains entry for target version
|
|
49
|
+
- Entry includes all major features and fixes
|
|
50
|
+
- Breaking changes are documented
|
|
51
|
+
|
|
52
|
+
2. **Documentation Currency**
|
|
53
|
+
- README.md reflects current functionality
|
|
54
|
+
- CLI reference is up to date
|
|
55
|
+
- MCP tools are documented
|
|
56
|
+
|
|
57
|
+
### Step 4: Dependency Validation
|
|
58
|
+
1. **Security Scan**
|
|
59
|
+
- No known vulnerabilities in dependencies
|
|
60
|
+
- All dependencies are at appropriate versions
|
|
61
|
+
- No conflicting dependency versions
|
|
62
|
+
|
|
63
|
+
2. **Build Validation**
|
|
64
|
+
- Package builds successfully
|
|
65
|
+
- All required files are included
|
|
66
|
+
- No missing dependencies
|
|
67
|
+
|
|
68
|
+
### Step 5: Issue Tracking Validation
|
|
69
|
+
1. **GitHub Issues Check**
|
|
70
|
+
- No critical open issues blocking release
|
|
71
|
+
- All milestone issues are resolved
|
|
72
|
+
- High-priority bugs are fixed
|
|
73
|
+
|
|
74
|
+
2. **Testing Coverage**
|
|
75
|
+
- Integration tests pass
|
|
76
|
+
- MCP tool tests pass
|
|
77
|
+
- Cross-platform compatibility verified
|
|
78
|
+
|
|
79
|
+
## Report Format
|
|
80
|
+
|
|
81
|
+
Generate a comprehensive report:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
🔍 Release Readiness Check for v0.13.0
|
|
85
|
+
|
|
86
|
+
✅ PASSED CHECKS:
|
|
87
|
+
├── Git status clean
|
|
88
|
+
├── On main branch
|
|
89
|
+
├── All tests passing (744/744)
|
|
90
|
+
├── Test coverage: 98.2%
|
|
91
|
+
├── Type checking passed
|
|
92
|
+
├── Linting passed
|
|
93
|
+
├── CHANGELOG.md updated
|
|
94
|
+
└── No critical issues open
|
|
95
|
+
|
|
96
|
+
⚠️ WARNINGS:
|
|
97
|
+
├── 2 medium-priority issues still open
|
|
98
|
+
└── Documentation could be updated
|
|
99
|
+
|
|
100
|
+
❌ BLOCKING ISSUES:
|
|
101
|
+
└── None found
|
|
102
|
+
|
|
103
|
+
🎯 RELEASE READINESS: ✅ READY
|
|
104
|
+
|
|
105
|
+
Recommended next steps:
|
|
106
|
+
1. Address warnings if desired
|
|
107
|
+
2. Run `/release v0.13.0` when ready
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Validation Criteria
|
|
111
|
+
|
|
112
|
+
### Must Pass (Blocking)
|
|
113
|
+
- [ ] All tests pass
|
|
114
|
+
- [ ] No type errors
|
|
115
|
+
- [ ] No linting errors
|
|
116
|
+
- [ ] Working directory clean
|
|
117
|
+
- [ ] On main branch
|
|
118
|
+
- [ ] CHANGELOG.md has version entry
|
|
119
|
+
- [ ] No critical open issues
|
|
120
|
+
|
|
121
|
+
### Should Pass (Warnings)
|
|
122
|
+
- [ ] Test coverage >95%
|
|
123
|
+
- [ ] No medium-priority open issues
|
|
124
|
+
- [ ] Documentation up to date
|
|
125
|
+
- [ ] No dependency vulnerabilities
|
|
126
|
+
|
|
127
|
+
## Context
|
|
128
|
+
- This is a read-only validation - makes no changes
|
|
129
|
+
- Provides confidence before running actual release
|
|
130
|
+
- Helps identify issues early in release process
|
|
131
|
+
- Can be run multiple times safely
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# /release - Create Stable Release
|
|
2
|
+
|
|
3
|
+
Create a stable release using the automated justfile target with comprehensive validation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/release <version>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Release version like `v0.13.2`
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert release manager for the Basic Memory project. When the user runs `/release`, execute the following steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Pre-flight Validation
|
|
18
|
+
|
|
19
|
+
#### Version Check
|
|
20
|
+
1. Check current version in `src/basic_memory/__init__.py`
|
|
21
|
+
2. Verify new version format matches `v\d+\.\d+\.\d+` pattern
|
|
22
|
+
3. Confirm version is higher than current version
|
|
23
|
+
|
|
24
|
+
#### Git Status
|
|
25
|
+
1. Check current git status for uncommitted changes
|
|
26
|
+
2. Verify we're on the `main` branch
|
|
27
|
+
3. Confirm no existing tag with this version
|
|
28
|
+
|
|
29
|
+
#### Documentation Validation
|
|
30
|
+
1. **Changelog Check**
|
|
31
|
+
- CHANGELOG.md contains entry for target version
|
|
32
|
+
- Entry includes all major features and fixes
|
|
33
|
+
- Breaking changes are documented
|
|
34
|
+
|
|
35
|
+
### Step 2: Use Justfile Automation
|
|
36
|
+
Execute the automated release process:
|
|
37
|
+
```bash
|
|
38
|
+
just release <version>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The justfile target handles:
|
|
42
|
+
- ✅ Version format validation
|
|
43
|
+
- ✅ Git status and branch checks
|
|
44
|
+
- ✅ Quality checks (`just check` - lint, format, type-check, tests)
|
|
45
|
+
- ✅ Version update in `src/basic_memory/__init__.py`
|
|
46
|
+
- ✅ Automatic commit with proper message
|
|
47
|
+
- ✅ Tag creation and pushing to GitHub
|
|
48
|
+
- ✅ Release workflow trigger (automatic on tag push)
|
|
49
|
+
|
|
50
|
+
The GitHub Actions workflow (`.github/workflows/release.yml`) then:
|
|
51
|
+
- ✅ Builds the package using `uv build`
|
|
52
|
+
- ✅ Creates GitHub release with auto-generated notes
|
|
53
|
+
- ✅ Publishes to PyPI
|
|
54
|
+
- ✅ Updates Homebrew formula (stable releases only)
|
|
55
|
+
|
|
56
|
+
### Step 3: Monitor Release Process
|
|
57
|
+
1. Verify tag push triggered the workflow (should start automatically within seconds)
|
|
58
|
+
2. Monitor workflow progress at: https://github.com/basicmachines-co/basic-memory/actions
|
|
59
|
+
3. Watch for successful completion of both jobs:
|
|
60
|
+
- `release` - Builds package and publishes to PyPI
|
|
61
|
+
- `homebrew` - Updates Homebrew formula (stable releases only)
|
|
62
|
+
4. Check for any workflow failures and investigate logs if needed
|
|
63
|
+
|
|
64
|
+
### Step 4: Post-Release Validation
|
|
65
|
+
|
|
66
|
+
#### GitHub Release
|
|
67
|
+
1. Verify GitHub release is created at: https://github.com/basicmachines-co/basic-memory/releases/tag/<version>
|
|
68
|
+
2. Check that release notes are auto-generated from commits
|
|
69
|
+
3. Validate release assets (`.whl` and `.tar.gz` files are attached)
|
|
70
|
+
|
|
71
|
+
#### PyPI Publication
|
|
72
|
+
1. Verify package published at: https://pypi.org/project/basic-memory/<version>/
|
|
73
|
+
2. Test installation: `uv tool install basic-memory`
|
|
74
|
+
3. Verify installed version: `basic-memory --version`
|
|
75
|
+
|
|
76
|
+
#### Homebrew Formula (Stable Releases Only)
|
|
77
|
+
1. Check formula update at: https://github.com/basicmachines-co/homebrew-basic-memory
|
|
78
|
+
2. Verify formula version matches release
|
|
79
|
+
3. Test Homebrew installation: `brew install basicmachines-co/basic-memory/basic-memory`
|
|
80
|
+
|
|
81
|
+
#### Website Updates
|
|
82
|
+
|
|
83
|
+
**1. basicmachines.co** (`/Users/drew/code/basicmachines.co`)
|
|
84
|
+
- **Goal**: Update version number displayed on the homepage
|
|
85
|
+
- **Location**: Search for "Basic Memory v0." in the codebase to find version displays
|
|
86
|
+
- **What to update**:
|
|
87
|
+
- Hero section heading that shows "Basic Memory v{VERSION}"
|
|
88
|
+
- "What's New in v{VERSION}" section heading
|
|
89
|
+
- Feature highlights array (look for array of features with title/description)
|
|
90
|
+
- **Process**:
|
|
91
|
+
1. Pull latest from GitHub: `git pull origin main`
|
|
92
|
+
2. Create release branch: `git checkout -b release/v{VERSION}`
|
|
93
|
+
3. Search codebase for current version number (e.g., "v0.16.1")
|
|
94
|
+
4. Update version numbers to new release version
|
|
95
|
+
5. Update feature highlights with 3-5 key features from this release (extract from CHANGELOG.md)
|
|
96
|
+
6. Commit changes: `git commit -m "chore: update to v{VERSION}"`
|
|
97
|
+
7. Push branch: `git push origin release/v{VERSION}`
|
|
98
|
+
- **Deploy**: Follow deployment process for basicmachines.co
|
|
99
|
+
|
|
100
|
+
**2. docs.basicmemory.com** (`/Users/drew/code/docs.basicmemory.com`)
|
|
101
|
+
- **Goal**: Add new release notes section to the latest-releases page
|
|
102
|
+
- **File**: `src/pages/latest-releases.mdx`
|
|
103
|
+
- **What to do**:
|
|
104
|
+
1. Pull latest from GitHub: `git pull origin main`
|
|
105
|
+
2. Create release branch: `git checkout -b release/v{VERSION}`
|
|
106
|
+
3. Read the existing file to understand the format and structure
|
|
107
|
+
4. Read `/Users/drew/code/basic-memory/CHANGELOG.md` to get release content
|
|
108
|
+
5. Add new release section **at the top** (after MDX imports, before other releases)
|
|
109
|
+
6. Follow the existing pattern:
|
|
110
|
+
- Heading: `## [v{VERSION}](github-link) — YYYY-MM-DD`
|
|
111
|
+
- Focus statement if applicable
|
|
112
|
+
- `<Info>` block with highlights (3-5 key items)
|
|
113
|
+
- Sections for Features, Bug Fixes, Breaking Changes, etc.
|
|
114
|
+
- Link to full changelog at the end
|
|
115
|
+
- Separator `---` between releases
|
|
116
|
+
7. Commit changes: `git commit -m "docs: add v{VERSION} release notes"`
|
|
117
|
+
8. Push branch: `git push origin release/v{VERSION}`
|
|
118
|
+
- **Source content**: Extract and format sections from CHANGELOG.md for this version
|
|
119
|
+
- **Deploy**: Follow deployment process for docs.basicmemory.com
|
|
120
|
+
|
|
121
|
+
**4. Announce Release**
|
|
122
|
+
- Post to Discord community if significant changes
|
|
123
|
+
- Update social media if major release
|
|
124
|
+
- Notify users via appropriate channels
|
|
125
|
+
|
|
126
|
+
## Pre-conditions Check
|
|
127
|
+
Before starting, verify:
|
|
128
|
+
- [ ] All beta testing is complete
|
|
129
|
+
- [ ] Critical bugs are fixed
|
|
130
|
+
- [ ] Breaking changes are documented
|
|
131
|
+
- [ ] CHANGELOG.md is updated (if needed)
|
|
132
|
+
- [ ] Version number follows semantic versioning
|
|
133
|
+
|
|
134
|
+
## Error Handling
|
|
135
|
+
- If `just release` fails, examine the error output for specific issues
|
|
136
|
+
- If quality checks fail, fix issues and retry
|
|
137
|
+
- If changelog entry missing, update CHANGELOG.md and commit before retrying
|
|
138
|
+
- If GitHub Actions fail, check workflow logs for debugging
|
|
139
|
+
|
|
140
|
+
## Success Output
|
|
141
|
+
```
|
|
142
|
+
🎉 Stable Release v0.13.2 Created Successfully!
|
|
143
|
+
|
|
144
|
+
🏷️ Tag: v0.13.2
|
|
145
|
+
📋 GitHub Release: https://github.com/basicmachines-co/basic-memory/releases/tag/v0.13.2
|
|
146
|
+
📦 PyPI: https://pypi.org/project/basic-memory/0.13.2/
|
|
147
|
+
🍺 Homebrew: https://github.com/basicmachines-co/homebrew-basic-memory
|
|
148
|
+
🚀 GitHub Actions: Completed
|
|
149
|
+
|
|
150
|
+
Install with pip/uv:
|
|
151
|
+
uv tool install basic-memory
|
|
152
|
+
|
|
153
|
+
Install with Homebrew:
|
|
154
|
+
brew install basicmachines-co/basic-memory/basic-memory
|
|
155
|
+
|
|
156
|
+
Users can now upgrade:
|
|
157
|
+
uv tool upgrade basic-memory
|
|
158
|
+
brew upgrade basic-memory
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Context
|
|
162
|
+
- This creates production releases used by end users
|
|
163
|
+
- Must pass all quality gates before proceeding
|
|
164
|
+
- Uses the automated justfile target for consistency
|
|
165
|
+
- Version is automatically updated in `__init__.py`
|
|
166
|
+
- Triggers automated GitHub release with changelog
|
|
167
|
+
- Package is published to PyPI for `pip` and `uv` users
|
|
168
|
+
- Homebrew formula is automatically updated for stable releases
|
|
169
|
+
- Supports multiple installation methods (uv, pip, Homebrew)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: mcp__basic-memory__write_note, mcp__basic-memory__read_note, mcp__basic-memory__search_notes, mcp__basic-memory__edit_note
|
|
3
|
+
argument-hint: [create|status|show|review] [spec-name]
|
|
4
|
+
description: Manage specifications in our development process
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
Specifications are managed in the Basic Memory "specs" project. All specs live in a centralized location accessible across all repositories via MCP tools.
|
|
10
|
+
|
|
11
|
+
See SPEC-1 and SPEC-2 in the "specs" project for the full specification-driven development process.
|
|
12
|
+
|
|
13
|
+
Available commands:
|
|
14
|
+
- `create [name]` - Create new specification
|
|
15
|
+
- `status` - Show all spec statuses
|
|
16
|
+
- `show [spec-name]` - Read a specific spec
|
|
17
|
+
- `review [spec-name]` - Review implementation against spec
|
|
18
|
+
|
|
19
|
+
## Your task
|
|
20
|
+
|
|
21
|
+
Execute the spec command: `/spec $ARGUMENTS`
|
|
22
|
+
|
|
23
|
+
### If command is "create":
|
|
24
|
+
1. Get next SPEC number by searching existing specs in "specs" project
|
|
25
|
+
2. Create new spec using template from SPEC-2
|
|
26
|
+
3. Use mcp__basic-memory__write_note with project="specs"
|
|
27
|
+
4. Include standard sections: Why, What, How, How to Evaluate
|
|
28
|
+
|
|
29
|
+
### If command is "status":
|
|
30
|
+
1. Use mcp__basic-memory__search_notes with project="specs"
|
|
31
|
+
2. Display table with spec number, title, and progress
|
|
32
|
+
3. Show completion status from checkboxes in content
|
|
33
|
+
|
|
34
|
+
### If command is "show":
|
|
35
|
+
1. Use mcp__basic-memory__read_note with project="specs"
|
|
36
|
+
2. Display the full spec content
|
|
37
|
+
|
|
38
|
+
### If command is "review":
|
|
39
|
+
1. Read the specified spec and its "How to Evaluate" section
|
|
40
|
+
2. Review current implementation against success criteria with careful evaluation of:
|
|
41
|
+
- **Functional completeness** - All specified features working
|
|
42
|
+
- **Test coverage analysis** - Actual test files and coverage percentage
|
|
43
|
+
- Count existing test files vs required components/APIs/composables
|
|
44
|
+
- Verify unit tests, integration tests, and end-to-end tests
|
|
45
|
+
- Check for missing test categories (component, API, workflow)
|
|
46
|
+
- **Code quality metrics** - TypeScript compilation, linting, performance
|
|
47
|
+
- **Architecture compliance** - Component isolation, state management patterns
|
|
48
|
+
- **Documentation completeness** - Implementation matches specification
|
|
49
|
+
3. Provide honest, accurate assessment - do not overstate completeness
|
|
50
|
+
4. Document findings and update spec with review results using mcp__basic-memory__edit_note
|
|
51
|
+
5. If gaps found, clearly identify what still needs to be implemented/tested
|