506 lines
12 KiB
Markdown
506 lines
12 KiB
Markdown
# BMAD Memory Data Structures Methodology
|
|
|
|
## Overview
|
|
|
|
This methodology defines how to structure memory data within different IDE environments. Rather than prescriptive code, this provides patterns and guidelines for implementing memory structures using each IDE's available storage and data management capabilities.
|
|
|
|
## Memory Entity Structure Patterns
|
|
|
|
### Core Memory Entity Pattern
|
|
|
|
Every memory entity should follow this conceptual structure, adapted to your IDE's data storage capabilities:
|
|
|
|
```yaml
|
|
memory_entity_pattern:
|
|
identity:
|
|
- unique_identifier
|
|
- memory_type_classification
|
|
- creation_timestamp
|
|
- last_access_timestamp
|
|
- access_frequency_counter
|
|
- importance_score
|
|
|
|
metadata:
|
|
- source_information
|
|
- owner_identification
|
|
- project_association
|
|
- categorization_tags
|
|
- privacy_classification
|
|
- retention_policy
|
|
|
|
content:
|
|
- descriptive_title
|
|
- concise_summary
|
|
- detailed_content
|
|
- content_format_type
|
|
- semantic_embeddings
|
|
- relationship_links
|
|
|
|
access_control:
|
|
- read_permissions
|
|
- write_permissions
|
|
- share_permissions
|
|
```
|
|
|
|
### IDE-Specific Implementation Patterns
|
|
|
|
#### Claude Code Pattern
|
|
```yaml
|
|
claude_code_implementation:
|
|
storage_format: "markdown_files"
|
|
structure_approach:
|
|
- use_yaml_frontmatter_for_metadata
|
|
- use_markdown_body_for_content
|
|
- use_file_naming_for_identification
|
|
- use_directory_structure_for_organization
|
|
|
|
example_structure: |
|
|
---
|
|
id: mem_001
|
|
type: semantic
|
|
created: 2024-01-15T10:30:00Z
|
|
importance: 0.8
|
|
tags: [architecture, patterns, microservices]
|
|
privacy: shared
|
|
---
|
|
|
|
# Microservices Architecture Pattern
|
|
|
|
## Summary
|
|
Best practices for implementing microservices architecture...
|
|
|
|
## Details
|
|
[Detailed content here]
|
|
|
|
## Relationships
|
|
- Related to: mem_002 (API Gateway Pattern)
|
|
- Supports: mem_003 (Service Discovery)
|
|
```
|
|
|
|
#### Cursor AI Pattern
|
|
```yaml
|
|
cursor_ai_implementation:
|
|
storage_format: "json_files"
|
|
structure_approach:
|
|
- use_json_schema_for_validation
|
|
- use_file_system_for_organization
|
|
- use_workspace_storage_api
|
|
- use_extension_storage_mechanisms
|
|
|
|
example_structure: |
|
|
{
|
|
"id": "mem_001",
|
|
"type": "semantic",
|
|
"created": "2024-01-15T10:30:00Z",
|
|
"metadata": {
|
|
"importance": 0.8,
|
|
"tags": ["architecture", "patterns"],
|
|
"privacy": "shared",
|
|
"project": "current_workspace"
|
|
},
|
|
"content": {
|
|
"title": "Microservices Architecture Pattern",
|
|
"summary": "Best practices for...",
|
|
"details": "...",
|
|
"format": "text"
|
|
},
|
|
"relationships": [
|
|
{"id": "mem_002", "type": "related", "strength": 0.9}
|
|
]
|
|
}
|
|
```
|
|
|
|
#### V0 Pattern
|
|
```yaml
|
|
v0_implementation:
|
|
storage_format: "browser_storage"
|
|
structure_approach:
|
|
- use_localstorage_for_persistence
|
|
- use_sessionstorage_for_temporary
|
|
- use_indexeddb_for_complex_data
|
|
- use_component_state_for_active
|
|
|
|
example_structure: |
|
|
// localStorage structure
|
|
{
|
|
"bmad_memories": {
|
|
"mem_001": {
|
|
"id": "mem_001",
|
|
"type": "procedural",
|
|
"content": {
|
|
"title": "Button Component Pattern",
|
|
"summary": "Reusable button component with variants",
|
|
"details": {
|
|
"component_code": "...",
|
|
"usage_examples": "...",
|
|
"variants": ["primary", "secondary", "danger"]
|
|
}
|
|
},
|
|
"metadata": {
|
|
"created": "2024-01-15T10:30:00Z",
|
|
"importance": 0.7,
|
|
"tags": ["components", "ui", "buttons"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
#### JetBrains Pattern
|
|
```yaml
|
|
jetbrains_implementation:
|
|
storage_format: "xml_configuration"
|
|
structure_approach:
|
|
- use_plugin_configuration_files
|
|
- use_project_storage_api
|
|
- use_application_storage_api
|
|
- use_psi_element_references
|
|
|
|
example_structure: |
|
|
<memory-store>
|
|
<memory id="mem_001" type="semantic">
|
|
<metadata>
|
|
<created>2024-01-15T10:30:00Z</created>
|
|
<importance>0.8</importance>
|
|
<tags>architecture,patterns</tags>
|
|
<privacy>shared</privacy>
|
|
</metadata>
|
|
<content format="text">
|
|
<title>Microservices Architecture Pattern</title>
|
|
<summary>Best practices for implementing...</summary>
|
|
<details>...</details>
|
|
</content>
|
|
<relationships>
|
|
<relationship target="mem_002" type="related" strength="0.9"/>
|
|
</relationships>
|
|
</memory>
|
|
</memory-store>
|
|
```
|
|
|
|
## Memory Type Specialization Patterns
|
|
|
|
### Working Memory Pattern
|
|
```yaml
|
|
working_memory_specialization:
|
|
characteristics:
|
|
- temporary_storage
|
|
- session_scoped
|
|
- high_access_frequency
|
|
- automatic_cleanup
|
|
|
|
implementation_guidelines:
|
|
- store_in_volatile_memory
|
|
- use_session_storage_mechanisms
|
|
- implement_automatic_expiration
|
|
- optimize_for_fast_access
|
|
|
|
additional_fields:
|
|
- active_context_identifier
|
|
- processing_priority
|
|
- expiration_timestamp
|
|
- attention_focus_flag
|
|
```
|
|
|
|
### Episodic Memory Pattern
|
|
```yaml
|
|
episodic_memory_specialization:
|
|
characteristics:
|
|
- event_specific
|
|
- time_bound
|
|
- contextual_information
|
|
- narrative_structure
|
|
|
|
implementation_guidelines:
|
|
- include_temporal_information
|
|
- store_context_details
|
|
- link_to_participants
|
|
- maintain_sequence_information
|
|
|
|
additional_fields:
|
|
- event_timestamp
|
|
- duration_information
|
|
- location_context
|
|
- participant_list
|
|
- emotional_significance
|
|
- sequence_position
|
|
```
|
|
|
|
### Semantic Memory Pattern
|
|
```yaml
|
|
semantic_memory_specialization:
|
|
characteristics:
|
|
- conceptual_knowledge
|
|
- domain_specific
|
|
- factual_information
|
|
- relationship_rich
|
|
|
|
implementation_guidelines:
|
|
- organize_by_knowledge_domain
|
|
- include_confidence_measures
|
|
- track_source_reliability
|
|
- maintain_verification_status
|
|
|
|
additional_fields:
|
|
- knowledge_domains
|
|
- confidence_level
|
|
- source_reliability
|
|
- verification_status
|
|
- last_verified_timestamp
|
|
- contradiction_references
|
|
```
|
|
|
|
### Procedural Memory Pattern
|
|
```yaml
|
|
procedural_memory_specialization:
|
|
characteristics:
|
|
- process_oriented
|
|
- step_by_step
|
|
- executable_knowledge
|
|
- outcome_focused
|
|
|
|
implementation_guidelines:
|
|
- structure_as_ordered_steps
|
|
- include_success_metrics
|
|
- track_execution_history
|
|
- maintain_prerequisites
|
|
|
|
additional_fields:
|
|
- procedure_type
|
|
- step_sequence
|
|
- success_rate
|
|
- average_duration
|
|
- prerequisites
|
|
- expected_outcomes
|
|
```
|
|
|
|
## Relationship Structure Patterns
|
|
|
|
### Relationship Types Framework
|
|
```yaml
|
|
relationship_types:
|
|
hierarchical:
|
|
- parent_child
|
|
- contains_contained_by
|
|
- generalizes_specializes
|
|
|
|
sequential:
|
|
- precedes_follows
|
|
- causes_caused_by
|
|
- enables_enabled_by
|
|
|
|
associative:
|
|
- related_to
|
|
- similar_to
|
|
- contrasts_with
|
|
|
|
logical:
|
|
- supports_supported_by
|
|
- contradicts_contradicted_by
|
|
- implies_implied_by
|
|
```
|
|
|
|
### Relationship Implementation Pattern
|
|
```yaml
|
|
relationship_implementation:
|
|
structure:
|
|
- source_memory_identifier
|
|
- target_memory_identifier
|
|
- relationship_type
|
|
- relationship_strength
|
|
- creation_timestamp
|
|
- validation_status
|
|
|
|
bidirectional_maintenance:
|
|
- maintain_forward_references
|
|
- maintain_backward_references
|
|
- ensure_consistency
|
|
- handle_deletion_cascades
|
|
```
|
|
|
|
## Index Structure Patterns
|
|
|
|
### Primary Index Patterns
|
|
```yaml
|
|
primary_indices:
|
|
id_index:
|
|
purpose: "Direct memory lookup"
|
|
structure: "hash_map_or_dictionary"
|
|
key: "memory_identifier"
|
|
value: "storage_location_metadata"
|
|
|
|
type_index:
|
|
purpose: "Memory type-based queries"
|
|
structure: "categorized_lists"
|
|
key: "memory_type"
|
|
value: "list_of_memory_identifiers"
|
|
|
|
temporal_index:
|
|
purpose: "Time-based queries"
|
|
structure: "time_bucketed_lists"
|
|
key: "time_bucket"
|
|
value: "list_of_memory_identifiers"
|
|
```
|
|
|
|
### Secondary Index Patterns
|
|
```yaml
|
|
secondary_indices:
|
|
keyword_index:
|
|
purpose: "Text-based search"
|
|
structure: "inverted_index"
|
|
implementation: "keyword_to_memory_mapping"
|
|
|
|
importance_index:
|
|
purpose: "Priority-based retrieval"
|
|
structure: "sorted_lists"
|
|
implementation: "importance_score_ordering"
|
|
|
|
project_index:
|
|
purpose: "Project-scoped queries"
|
|
structure: "hierarchical_grouping"
|
|
implementation: "project_to_memory_mapping"
|
|
```
|
|
|
|
## Storage Organization Patterns
|
|
|
|
### File System Organization
|
|
```yaml
|
|
file_system_pattern:
|
|
directory_structure:
|
|
- memories/
|
|
- working/
|
|
- session_[timestamp]/
|
|
- short_term/
|
|
- [date]/
|
|
- episodic/
|
|
- [year]/[month]/
|
|
- semantic/
|
|
- [domain]/
|
|
- procedural/
|
|
- [category]/
|
|
- long_term/
|
|
- [year]/
|
|
|
|
naming_conventions:
|
|
- use_consistent_prefixes
|
|
- include_type_indicators
|
|
- add_timestamp_suffixes
|
|
- maintain_readable_names
|
|
```
|
|
|
|
### Database Organization
|
|
```yaml
|
|
database_pattern:
|
|
table_structure:
|
|
memories_table:
|
|
- id (primary_key)
|
|
- type
|
|
- created_at
|
|
- content_blob
|
|
- metadata_json
|
|
|
|
relationships_table:
|
|
- source_id
|
|
- target_id
|
|
- relationship_type
|
|
- strength
|
|
|
|
indices_table:
|
|
- memory_id
|
|
- index_type
|
|
- index_value
|
|
|
|
query_optimization:
|
|
- create_appropriate_indices
|
|
- use_composite_keys
|
|
- implement_query_caching
|
|
- optimize_for_common_patterns
|
|
```
|
|
|
|
## Data Validation Patterns
|
|
|
|
### Schema Validation
|
|
```yaml
|
|
validation_patterns:
|
|
required_fields:
|
|
- validate_presence_of_id
|
|
- validate_memory_type
|
|
- validate_timestamp_format
|
|
- validate_content_structure
|
|
|
|
data_integrity:
|
|
- check_relationship_validity
|
|
- verify_reference_consistency
|
|
- validate_permission_structure
|
|
- ensure_format_compliance
|
|
|
|
business_rules:
|
|
- enforce_retention_policies
|
|
- validate_privacy_levels
|
|
- check_access_permissions
|
|
- verify_importance_ranges
|
|
```
|
|
|
|
### Error Handling Patterns
|
|
```yaml
|
|
error_handling:
|
|
validation_errors:
|
|
- provide_clear_error_messages
|
|
- suggest_correction_actions
|
|
- maintain_data_consistency
|
|
- log_validation_failures
|
|
|
|
storage_errors:
|
|
- implement_retry_mechanisms
|
|
- provide_fallback_storage
|
|
- maintain_transaction_integrity
|
|
- notify_of_storage_issues
|
|
|
|
retrieval_errors:
|
|
- handle_missing_memories
|
|
- provide_partial_results
|
|
- suggest_alternative_queries
|
|
- maintain_search_performance
|
|
```
|
|
|
|
## Migration and Versioning Patterns
|
|
|
|
### Schema Evolution
|
|
```yaml
|
|
versioning_strategy:
|
|
version_tracking:
|
|
- maintain_schema_version_numbers
|
|
- document_schema_changes
|
|
- provide_migration_paths
|
|
- ensure_backward_compatibility
|
|
|
|
migration_patterns:
|
|
- implement_gradual_migration
|
|
- maintain_data_integrity
|
|
- provide_rollback_capabilities
|
|
- test_migration_procedures
|
|
```
|
|
|
|
### Data Migration
|
|
```yaml
|
|
migration_procedures:
|
|
preparation:
|
|
- backup_existing_data
|
|
- validate_migration_scripts
|
|
- test_on_sample_data
|
|
- prepare_rollback_plan
|
|
|
|
execution:
|
|
- run_migration_incrementally
|
|
- monitor_migration_progress
|
|
- validate_migrated_data
|
|
- update_system_references
|
|
|
|
validation:
|
|
- verify_data_integrity
|
|
- test_system_functionality
|
|
- validate_performance_impact
|
|
- confirm_user_access
|
|
```
|
|
|
|
This methodology provides the framework for implementing memory data structures within any IDE environment while adapting to the specific capabilities and constraints of each platform.
|