This map is the required branch and commit planning index. Each implementation slice MUST remain within the listed
feature boundary, follow the dependency order, and provide the listed validation before its gate closes. Canonical
public identities are mongo/ms-agent-framework-mongodb, Python distribution agent-framework-mongodb with import
root agent_framework_mongodb, and .NET package and namespace MongoDB.AgentFramework.
The canonical specifications authorize implementation of these mapped slices. Linked ADRs record the decision rationale and remain subject to the repository's formal approval process; while proposed, they MUST NOT be used to override or weaken the mapped specification.
| Order | Slice | Specifications | Decisions | Public types or contracts | Required validation |
|---|---|---|---|---|---|
| 1 | Foundation and shared internals | Architecture, configuration, packages, resilience | ADRs 0001, 0003, 0004, 0005, 0014 | Shared internal client, ownership, capabilities, field-path, filter, serialization, and error mechanics; no shared public provider | Package builds, ownership, configuration, capability, cancellation, dependency-range, and clean-install tests |
| 2 | Memory Python | Memory, interfaces | ADRs 0002, 0010, 0015 | MongoDBMemoryContextProvider(ContextProvider) |
Unit, typed, package, sample, and integration-memory tests |
| 3 | Memory .NET | Memory, interfaces | ADRs 0002, 0010, 0015 | MongoDBMemoryProvider through public AIContextProvider/MessageAIContextProvider contracts |
Unit, build, package, sample, and integration-memory tests |
| 4 | Chat History Python | Chat History, interfaces | ADRs 0002, 0008, 0009 | MongoDBHistoryProvider(HistoryProvider) and MongoDBHistoryProviderOptions |
Lossless fixtures, ordering, idempotency, retention, package, sample, and integration-history tests |
| 5 | Chat History .NET | Chat History, interfaces | ADRs 0002, 0008, 0009 | MongoDBChatHistoryProvider : ChatHistoryProvider and MongoDBChatHistoryProviderOptions |
Lossless fixtures, ordering, idempotency, retention, package, sample, and integration-history tests |
| 6 | RAG contracts and filters | RAG, interfaces, security | ADRs 0002, 0007, 0009, 0010 | MongoDBRAGContextProvider, MongoDBRAGProvider, direct search, MongoDBSearchMode, typed filter AST, normalized result |
Cross-language option, filter-placement, result, citation, cancellation, and read-only fixtures |
| 7 | Vector RAG Python | RAG | ADRs 0007, 0011 | Python ANN and ENN direct search and context adapter | Unit, package, sample, ANN/ENN capability, authorization, and integration-rag-vector tests |
| 8 | Vector RAG .NET | RAG | ADRs 0007, 0011 | .NET ANN and ENN direct search and context adapter | Unit, package, sample, ANN/ENN capability, authorization, and integration-rag-vector tests |
| 9 | Full-text RAG Python | RAG | ADRs 0007, 0011 | Python full-text mode | Operator, filter, score, source, package, sample, and integration-rag-search tests |
| 10 | Full-text RAG .NET | RAG | ADRs 0007, 0011 | .NET full-text mode | Operator, filter, score, source, package, sample, and integration-rag-search tests |
| 11 | Hybrid RAG Python | RAG | ADRs 0007, 0011 | Python native $rankFusion RRF mode |
Dual-pipeline authorization, de-duplication, weights, limits, scores, package, sample, and integration-rag-hybrid tests |
| 12 | Hybrid RAG .NET | RAG | ADRs 0007, 0011 | .NET native $rankFusion RRF mode |
Dual-pipeline authorization, de-duplication, weights, limits, scores, package, sample, and integration-rag-hybrid tests |
| 13 | Indexing | Index management | ADRs 0006, 0016 | Feature-specific explicit index facades in runtime packages | Structured definition, state, equivalence, polling, cancellation, privileges, and real-deployment tests |
| 14 | Ingestion samples | Knowledge ingestion, samples | ADRs 0002, 0007 | Sample-only loader and incremental-ingestion APIs; no production ingestion provider | Deterministic ID, hash, bounded paging, cancellation, cleanup, and sample smoke tests |
| 15 | Session Store Python | Persistence | ADRs 0012, 0018, 0009 | MongoDBSessionStore(SessionStore) |
Public serialization, unknown state, isolation, compare-and-swap, TTL, deletion, compatibility, package, sample, and integration-persistence tests |
| 16 | Session Store .NET | Persistence | ADRs 0012, 0018, 0009 | MongoDBAgentSessionStore implementing the supported public Agent Framework session-hosting contract |
Public serialization, unknown state, isolation, compare-and-swap, TTL, deletion, compatibility, package, sample, and integration-persistence tests |
| 17 | Workflow Checkpoint Python | Persistence | ADRs 0012, 0018, 0009 | MongoDBCheckpointStorage(CheckpointStorage) |
Serialization, idempotency, lineage, ordering, pagination, resumption, retention, compatibility, package, sample, and integration-persistence tests |
| 18 | Workflow Checkpoint .NET | Persistence | ADRs 0012, 0018, 0009 | MongoDBCheckpointStore(JsonCheckpointStore) |
Serialization, idempotency, lineage, ordering, pagination, resumption, retention, compatibility, package, sample, and integration-persistence tests |
| 19 | Observability and security | Observability and security, resilience | ADRs 0007, 0010, 0017 | Standard logging and tracing surfaces with approved redaction; no model-controlled MongoDB structures | Redaction, authorization placement, cancellation, fail-open boundary, secret scan, dependency, vulnerability, and code-scanning tests |
| 20 | Packaging and release | Packages, quality and release, compatibility and migration | ADRs 0004, 0011, 0013, 0014 | Python agent-framework-mongodb; .NET MongoDB.AgentFramework; tags python-v<version> and dotnet-v<version> |
Every implementation gate, API baseline from first published release, artifact install/smoke, SBOM, provenance, signatures per owner policy, and published-package verification |
Support team, publishing identities, security contact, and exact supported dependency and deployment versions are Foundation verification inputs and release prerequisites. They MUST be recorded from owner and compatibility evidence; contributors MUST NOT invent them. Their absence does not block feature coding after the relevant public framework contract has been verified, but it blocks the Foundation gate and package publication.