Files
markitect-main/history/migration-reports/ASSET_MODEL_MIGRATION.md
tegwick 7cc81dee8f
Some checks failed
Test Suite / unit-tests (3.11) (push) Has been cancelled
Test Suite / unit-tests (3.12) (push) Has been cancelled
Test Suite / integration-tests (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / performance-tests (push) Has been cancelled
Test Suite / code-quality (push) Has been cancelled
Test Suite / security-scan (push) Has been cancelled
Test Suite / test-summary (push) Has been cancelled
feat: organize and archive legacy files to history directory
Clean up base directory by moving completed work and legacy files to
organized subdirectories within history/, improving project navigation
and separating active files from historical artifacts.

## Archived Files:

### Development Scripts → history/development-scripts/
- debug_*.py (7 files) - Legacy debugging and development scripts
- demo_issue_150.py - Issue demonstration script

### Migration Reports → history/migration-reports/
- AGENT_MIGRATION_REPORT.md - Completed agent migration work
- ASSET_MODEL_MIGRATION.md - Completed asset model migration
- KAIZEN_MIGRATION_GAMEPLAN.md - Completed kaizen framework migration
- KAIZEN_UPDATE_REPORT.md - Completed kaizen update work
- PHASE_3_COMPLETION_REPORT.md - Completed phase 3 work
- PHASE_4_COMPLETION_REPORT.md - Completed phase 4 work

### Legacy Files → history/legacy-files/
- .env.tddai - Legacy TDD framework configuration
- README.html - Generated file (superseded by README.md)
- test_status.html - Generated test status file
- install-*.sh (5 files) - Legacy individual install scripts

## Benefits:
- **Cleaner Repository**: Base directory now focused on active development
- **Better Organization**: Historical files properly categorized and preserved
- **Improved Navigation**: Easier to find current vs. historical information
- **Preserved History**: All work artifacts maintained for reference

Repository now has 33 active files in base directory (reduced from 48)
with complete historical preservation in organized subdirectories.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 02:55:23 +02:00

1.8 KiB

Asset Model Migration Plan

Goal

Convert from dict-based asset representation to object-based Asset model for better type safety and test compatibility.

Current State

  • AssetRegistry.list_assets() returns List[Dict[str, Any]]
  • Tests expect List[Asset] with attributes like asset.filename
  • Multiple inconsistent field names: content_hash vs hash, size_bytes vs size

Migration Strategy

Phase 1: Add Model Support (Non-Breaking)

  1. Create Asset dataclass with from_dict() and to_dict() methods
  2. Add AssetRegistry.list_assets_as_objects() method
  3. Update tests to use new method

Phase 2: Gradual Migration

  1. Update AssetManager to return Asset objects
  2. Update CLI commands to use object interface
  3. Update analytics and discovery modules

Phase 3: Storage Migration

  1. Update registry storage format (optional - can keep dict storage)
  2. Remove old methods
  3. Update all remaining code

Implementation Steps

1. Update AssetRegistry

def list_assets_as_objects(self) -> List[Asset]:
    """List all assets as Asset objects."""
    asset_dicts = self.list_assets()
    return [Asset.from_dict(asset_dict) for asset_dict in asset_dicts]

2. Update AssetManager

def list_assets(self) -> List[Asset]:
    """List all assets with enhanced information."""
    return self.registry.list_assets_as_objects()

3. Update Tests

  • Change [asset.filename for asset in assets] to work with objects
  • Update assertions to use object attributes

Benefits After Migration

  • Type safety and IDE support
  • Test compatibility
  • Cleaner, more maintainable code
  • Future extensibility (methods, computed properties)

Risks

  • Temporary complexity during migration
  • Need to ensure backward compatibility during transition