About this project
AAMF (Autonomous Agent Migration Framework) is an open-source TypeScript/Node.js tool for translating legacy codebases into another language or framework. It is designed as a deterministic, resumable migration pipeline rather than a one-shot code generator. The README describes a nine-phase workflow: indexing the source codebase, deriving a dependency-ordered task graph, building a knowledge base, planning and adjudicating migration strategy, iteratively migrating tasks, verifying final parity, producing E2E tests and documentation, optionally refactoring toward target-language idioms, and emitting completion reports.
The core approach uses a Lore-style symbol and call graph to decompose the source code into bounded migration tasks. Strongly connected components are contracted so mutually dependent code stays in one unit, neighboring clusters are merged under size limits, and oversized cyclic regions are split into manageable chunks. The resulting task graph is deterministic, which supports retries, partial reruns, and predictable resume behavior. Execution modes include per-task validation, wave-barrier synchronization, and sync-epoch checkpoints, allowing the target repository to remain buildable and testable during migration.
AAMF coordinates a catalog of specialized AI agents through the CADRE orchestration framework. Agents include a knowledge builder, migration planner, adjudicator, code migrator, parity verifier, test writer, parity failure resolver, final parity checker, E2E test crafter, documentation writer, and idiomatic refactoring agents. The runtime supports agent backends such as Copilot and Claude Code, injects scenario instructions, manages MCP-based knowledge-base access, and records invocation metrics including timing, token usage, cost estimates, and routing tier.
The framework emphasizes resilience and observability. Checkpoints are written after phase and task completion, enabling interrupted migrations to resume from saved cursors. Failed agent work is retried, infrastructure errors are handled separately, and unresolved failures can be routed to a parity-failure resolver. Token budgets, cost estimation, JSONL invocation logs, and aggregate summaries provide operational visibility. The README also notes a ported project example: an lz4 compression library translated from C to Rust.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.