Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
Challenge
Initializing search
    bf-dev
    • Home
    • Process
    • Products
    • Reference
    • Decisions
    • Work
    • Operations
    bf-dev
    • Home
      • Process Handbook
      • BetterFleet Workflow Map
      • Product Development System
      • Product Engineering Workflow
        • Process Workflows
        • Work Intake and Weekly Planning
        • Product Engineering Workflow in Linear
        • Product Engineering Delivery
        • Agent Guidance
        • Workflow
        • Skills
        • Skill Sources
        • Process Guides
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
        • Process Templates
        • Release Plan: <title>
      • Process Publishing
      • Product overview
        • General Reference
          • Core Domain Training
          • System Topology
          • Two-Axis Ontology Model
          • Ontology Primer
          • Worked Example
          • Evidence, Ownership, and Lineage
          • Energy Management
          • Standards and Protocol Map
          • Charging, Roaming, and Commercial Model
          • Charge Planning and Operations
          • Cross-Cutting Domains
          • Domain Coverage Matrix
        • BetterFleet Product Ontology
        • Core Operations Data Ontology
        • BetterFleet R&D Plan
        • Index
        • Architecture
        • Manage Product Capabilities
        • Manage Data and State
        • Manage Service Interaction Flows
        • Manage Reference
        • Manage Internal Application Diagrams
          • Manage Authorization And Permissions
          • bf-manage-core Auth and Authorization Model
          • Manage Authorization and Permissions
          • bf-manage-web Auth and Permission Model
          • Manage Service Catalog
          • bf-depot-sim
          • bf-digital-twin (Manage Role)
          • bf-fleet-health
          • bf-manage-connect
          • bf-manage-core
          • bf-manage-incidents
          • bf-manage-roaming
          • bf-manage-sitepwrmon
          • bf-manage-web
          • bf-schedule-creator (Manage Role)
          • bf-support-microsite
          • bf-telematics
        • Index
        • Architecture
        • Plan Reference
        • Plan Internal Application Diagrams
        • Plan Migration and Flags
        • Plan Simulation Request Lifecycle
          • Plan Service Catalog
          • bf-bnl-schedule-analysis-compute
          • bf-bnl-settings
          • bf-bnl-ui
          • bf-digital-twin (Plan Role)
          • bf-route-modelling
          • bf-schedule-creator (Plan Role)
      • Where to Ask Product Questions
      • Reference
        • Platform Reference
        • Platform Architecture
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repository Map
        • Monolithic Git Transition FAQ
        • Monolithic Git Sizing
        • CI and Release Integration
        • Shared Reference
        • Shared Infrastructure Architecture
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • System Reference
        • Cloud Data Dependencies
        • Ports and URLs
        • Service Matrix
          • API Docs
          • OCPI API Docs
          • OCPP API Docs
          • OSCP API Docs
          • VDV API Docs
          • Yard State API Docs
        • System Design
        • System Design: BBA Microgrid Controller Generic Packet Translation
        • System Design: Depot Simulation
        • System Design: IoT Sensor Packet
        • System Design: Microgrid Energy Orchestration
          • System Design: OCPP Profile 3 And ISO 15118 PKI
          • Architecture: BetterFleet OCPP Profile 3 and ISO 15118 PKI
          • Specification: BetterFleet OCPP Profile 3 and ISO 15118 Certificate Lifecycle Management
          • System Design: On-Prem Control
          • Challenge
          • Specification: BetterFleet On-Prem Continuity Control
          • System Design: OSCP
          • OSCP Protocol Documentation
          • Depot Sim Testing Requirements
          • System Design: OSCP Flexibility Provider Domain
      • Decisions
        • Architecture Decision Records
        • 0001 - Record architecture decisions
        • 0002 - Cognito for Authentication and Authorisation
        • 0003 - AWS Amplify for Authentication
        • 0004 - DynamoDB for default database
        • 0005 - Data Persistence
        • 0006 - Trunk-Based Development
        • 0007 - Generalised principle for automation
        • 0008 - Naming Repositories, Services, and URLs
        • 0009 - Use Timezone Aware DateTimes and UTC
        • 0010 - Use semantic release
        • 0011 - Centralized feature flag repository
        • 0012 - Use Named Exports in Storybook
        • 0013 - RESTful TITLE GraphQL
        • 0014 - Service Granularity
        • 0015 - Async/co-routine exception handling pattern
        • 0016 - Logging & log levels
        • 0017 - Instantiated Models
        • 0018 - Repository Pattern for Database Access
        • 0019 - Use of Design Tokens in TypeScript React Application
        • 0020 - API backwards compatibility and versioning
        • 0021 - Alembic Migration strategy
        • 0022 - Consistent react-hook-form usage
        • 0023 - Domain Event-Driven Architecture
        • 0024 - Domain Event Bus Tech Stack
        • 0025 - No enum types in DB table columns
        • 0026 - In-Memory Ormar Stores for Repository testing
        • 0027 - Storing Tab State in Query and Local Storage
        • 0028 - Adopt OpenTelemetry Semantic Conventions for Structured Logging
        • 0029 - Adopt RFC 9457 for HTTP Error Responses
        • 0030 - Use GitLab registry and Terraform state for ECS services
        • 0031 - Adopt DDD, Hexagonal Architecture, and CQRS for Python Domain Services
      • Work
        • Active Work
          • Work: Bba Microgrid Controller
          • Implementation Specification: BBA Microgrid Controller
          • BBA Microgrid Controller Deliverables (Stories)
          • Work: BFDev Monolithic Git
          • Challenge
            • Challenge: Unify BFDev Authoring for Agent-Led and Parallel Product Development
            • Motivation
            • Context
              • Domain Modelling
              • High-Level Use Cases / JTBD (Required)
            • Current State -> Desired State
            • Assumptions & Open Questions
            • Constraints & Out of Scope
            • Evaluation
            • Risks & Opportunities
            • Relationships
            • Solution Ideas & Tradeoffs
            • Release Sequencing
          • Specification: BFDev Monolithic Git v2
          • BFDev Monolithic Git v2 Stories
          • Work: Complex Circuit Load Balancing
          • Implementation Specification: Complex Circuit Load Balancing
          • Complex Circuit Load Balancing Deliverables (Stories)
            • COR-10 and COR-11 Consolidation Review
          • Work: Dispatch Reliability and Reconciliation
          • Challenge
          • Specification: Dispatch Reliability and Reconciliation
          • Dispatch Reliability and Reconciliation (Unit User Stories)
            • Dispatch populated vehicle cards grey surface snapshot
            • Dispatch Visual Review
          • Work: Enable Scheduled Managed Charger Access
          • Challenge: Enable Scheduled Managed Charger Access
          • Specification Exploration Dossier: Enable Scheduled Managed Charger Access
          • Specification Review: Enable Scheduled Managed Charger Access
          • Specification: Enable Scheduled Managed Charger Access
          • Work: Guided Cut-Off and Release Orchestration
          • Specification: Guided Cut-Off and Release Orchestration
          • Guided Cut-Off and Release Orchestration (Unit User Stories)
          • Work: Production Deployment Validation
          • Challenge
          • Work: Scheduled Report Parity
          • Specification: Scheduled Report Parity
          • Work: Telematics
          • Telematics EventBridge Path
          • Telematics Ingress Architecture
          • Specification: Telematics Migration into bf-manage-core with 5-Minute Freshness and Health Visibility
          • Telematics Core Migration MVP (Implementation-Time BDD)
          • Work: Vector Derms
          • Implementation Specification: Vector DERMS
          • Vector DERMS Deliverables (Stories)
          • Work: Visiting Vehicle Charging Visibility
          • Specification: Visiting Vehicle Charging Visibility
          • Visiting Vehicle Charging Visibility (Unit User Stories)
          • Work: Workspace Owned Stripe Roaming
          • Specification: Workspace-Owned Stripe Credentials for Roaming Payments
        • Backlog Work
          • Work: Microgrid
          • Microgrid Backlog Stories
          • Work: Mobile Ops Companion
          • Challenge
          • Specification: Mobile Operations Companion v1
          • Mobile Operations Companion Deliverables (Stories)
          • Work: Oscp
          • OSCP Backlog Stories
        • Archived Work
          • Work: Code Canonical Orchestration
          • Challenge
          • Specification: Product Engineering Workflow
          • Product Engineering Workflow Deliverables (Unit User Stories)
          • Work: Release Notes Automation
          • Release Plan: Release Notes Automation
          • Release Notes Automation Backlog Stories
      • Operations
      • Onboarding Runbook
        • Operations Runbooks
        • Production Hotfix Release
        • Staging Hotfix Release
        • Manage Staging Release Validation
        • Terraform Plan Dry Runs
        • Operations Tooling
        • Code Indexing
        • Operations Evidence
        • Database Restoration Test Report
      • Daily Operations Runbook
      • Testing Guide
      • Troubleshooting
    • Challenge: Unify BFDev Authoring for Agent-Led and Parallel Product Development
    • Motivation
    • Context
      • Domain Modelling
      • High-Level Use Cases / JTBD (Required)
    • Current State -> Desired State
    • Assumptions & Open Questions
    • Constraints & Out of Scope
    • Evaluation
    • Risks & Opportunities
    • Relationships
    • Solution Ideas & Tradeoffs
    • Release Sequencing
    1. Home
    2. Work
    3. Active
    4. Bf dev monolithic git

    Challenge

    Challenge: Unify BFDev Authoring for Agent-Led and Parallel Product Development¶

    How might we make bf-dev the one authoritative BetterFleet authoring repository, so contributors and agents can work across services as one product surface, run side-by-side worktree-based comparisons safely, and reduce the Git friction that currently blocks holistic testing and delivery?

    Motivation¶

    • The current bf-dev model is a local orchestration harness around many separately cloned service repositories, which means one product change often becomes several repository-specific authoring tasks.
    • That split is especially costly for agents, because branch management, review context, and change tracking are fragmented across multiple Git roots instead of one coherent workspace.
    • The immediate pressure is not only contributor convenience. BetterFleet also needs a practical stepping stone toward side-by-side validation workflows such as blue/green-style local comparisons, backwards-compatibility checks, and current-vs-upcoming version testing using separate worktrees.
    • In the current model, those experiments are awkward because one comparable environment may require several repositories to be branched, aligned, and checked out consistently.
    • Until the authoring surface becomes product-oriented rather than repo-oriented, full-stack testing, parallel experimentation, and small vertical slices will keep carrying unnecessary coordination overhead.

    Context¶

    • Today bf-dev bootstraps and orchestrates downstream BetterFleet repositories, but it does not act as the primary authoring repository for the code those repos contain.
    • Full-stack work regularly crosses service boundaries even when the user-visible outcome is one coherent product change.
    • The current repository topology exposes service and repository boundaries directly to contributors and agents during authoring, even when those boundaries are not helpful to the work being done.
    • BetterFleet wants to improve the authoring model without silently changing runtime/service boundaries. ADR 0014 - Service Granularity still governs service architecture separately from repository topology.
    • The intended change is therefore a Git-authoring and workflow challenge: make product-oriented change easier while preserving the current delivery-repository model during transition.

    Domain Modelling¶

    • Domain: BFDev repository topology and contributor authoring workflow.
    • Core entities:
    • Authoring repository
    • Imported project directory
    • Upstream repository binding
    • Branch
    • Worktree
    • Vertical slice
    • Comparison environment
    • Downstream sync path
    • This challenge sits between developer ergonomics, agent operating constraints, local testing workflows, and release continuity for the current service repos.

    High-Level Use Cases / JTBD (Required)¶

    • As a contributor, I want to work across BetterFleet services from one repository so I can deliver one product slice without repeating branch, commit, and review setup in every downstream repo.
    • As an agent, I want one coherent Git workspace so I can reason about, change, and validate a cross-service slice without reconstructing intent across multiple repository histories.
    • As a developer validating a risky change, I want one worktree for the current version and another for an upcoming version so I can compare behavior, verify backwards compatibility, and inspect regressions side by side.
    • As an engineering lead or reviewer, I want one review surface for a multi-service product change so I can assess the whole slice end to end rather than as several disconnected merge requests.
    • As a platform maintainer, I want contributors to stop caring about downstream repository mechanics during day-to-day authoring while still preserving safe synchronization to the current delivery repositories during transition.

    Current State -> Desired State¶

    Current State (Pain/Gain) Desired Outcome Success Measure
    Pain: one product-facing change often requires repeated branch, commit, push, and merge-request handling across several downstream repositories One product-facing slice can be authored and reviewed from one authoritative repository A contributor can complete a cross-service slice with one branch/worktree and one contributor-facing MR
    Pain: agents must operate across several Git roots, which fragments context, increases coordination overhead, and makes automation less reliable Agents can work against one coherent authoring surface Agent-driven tasks can inspect, edit, and validate a cross-service change from one workspace without per-repo orchestration
    Pain: side-by-side testing of current versus upcoming versions is awkward because multi-repo alignment across worktrees is cumbersome Parallel worktrees become a practical way to compare versions and behaviors safely A developer can stand up two comparable worktrees for the same slice and use them for blue/green-style local validation or backwards-compatibility checks
    Pain: the current repo topology keeps service/repository boundaries front-and-center even when the user outcome is one product change Contributors experience BetterFleet authoring as one product surface rather than many repo surfaces Normal authoring flow no longer requires contributors to think in per-service Git steps
    Gain to protect: service-level delivery pipelines and repository ownership already exist and should keep working during transition Authoring becomes simpler without breaking current downstream delivery continuity Downstream repositories remain synchronizable and deployable while the new authoring model is adopted

    Assumptions & Open Questions¶

    • Key assumptions:
    • The immediate problem is authoring topology, not runtime consolidation.
    • Better agent ergonomics is a primary business and engineering driver, not a side benefit.
    • Worktree-based comparison workflows are valuable enough to justify topology changes even before any larger BetterFleet-wide repo strategy is decided.
    • Contributors should usually experience downstream repositories as an implementation detail rather than a primary workspace concern.
    • Trunk-friendly small vertical slices remain the preferred delivery shape, consistent with ADR 0006 - Trunk-Based Development.
    • Open questions:
    • Which comparison workflows matter most in the first release: blue/green local validation, backwards-compatibility checks, regression comparison, or parallel exploratory spikes?
    • What degree of environment parity is needed for side-by-side worktree validation to be trusted by teams?
    • Which downstream repositories, if any, may still need temporary exceptions during migration because of size, sensitivity, or ownership complexity?
    • At what point does downstream sync remain a transition concern versus a longer-term permanent model?
    • Validation plans (who/what/when):
    • Validate with contributors and agents that the dominant friction is the authoring/review surface rather than only bootstrap tooling.
    • Validate with engineering that two-worktree comparison flows become materially easier under the proposed authoring model.
    • Validate with platform/release stakeholders that any transition approach preserves current downstream delivery safety.

    Constraints & Out of Scope¶

    • Constraints:
    • The challenge must stay scoped to bf-dev-monolithic-git, not a broader BetterFleet-wide repository strategy.
    • Repository-topology consolidation must remain explicitly separate from runtime or service consolidation.
    • Any automation introduced for downstream synchronization must satisfy ADR 0007 - Generalised principle for automation: safe, worthwhile, and observable.
    • Existing downstream repositories must continue supporting current CI, deployment, and infrastructure ownership during transition.
    • Out of scope:
    • Redesigning BetterFleet service boundaries.
    • Collapsing services into one runtime monolith.
    • Designing every implementation detail of subtree sync, bootstrap scripts, or CI execution in the challenge itself.
    • Solving the full BetterFleet-wide product-engineering repository model in this pass.

    Evaluation¶

    • User value:
    • Contributors spend less time on repository mechanics and more time on the product slice they are changing.
    • Agents get a workspace that is easier to reason about and safer to operate within.
    • Developers can run more realistic side-by-side comparisons between current and upcoming versions without reconstructing several repos in lockstep.
    • Business value & strategic alignment:
    • Better agent ergonomics improves the quality and speed of assisted delivery work.
    • Easier parallel experimentation and compatibility checking reduces risk around larger cross-service changes.
    • A product-oriented authoring surface supports the BetterFleet preference for small, trunk-friendly vertical slices rather than fragmented multi-repo batches.

    Risks & Opportunities¶

    • Risks:
    • The initiative gets mistaken for a runtime-monolith proposal and widens into service-architecture debate.
    • The workflow simplifies authoring but leaves comparison/testing ergonomics too vague to produce the intended blue/green-style benefits.
    • Downstream synchronization becomes opaque or brittle, which would trade one form of friction for another.
    • Contributors keep falling back to per-repo habits if the new authoring model is only partially coherent.
    • Opportunities:
    • Make agent-led cross-service work materially more reliable.
    • Turn worktrees into a normal tool for comparison, validation, and parallel experimentation rather than a niche workaround.
    • Shift BetterFleet authoring from repo-fragmented thinking toward product-oriented delivery without prematurely changing runtime architecture.

    Relationships¶

    • Related projects:
    • BFDev Monolithic Git specification
    • BFDev Monolithic Git stories
    • Platform Architecture
    • Upstream/downstream dependencies:
    • This challenge feeds the existing bf-dev-monolithic-git specification and story set.
    • The active specification should remain aligned to this challenge rather than broadening into runtime/service consolidation.
    • The eventual canonical governed challenge should live in Index even though this repo-local working artifact supports the current BFDev documentation set.

    Solution Ideas & Tradeoffs¶

    • Idea A (Preferred): make bf-dev the primary authoring repository while keeping downstream repositories in place for delivery continuity during transition.
    • Best for reducing contributor and agent friction quickly without forcing an all-at-once delivery-platform rewrite.
    • Idea B: keep the current multi-repo topology and improve it only with better scripts and conventions.
    • Lower immediate migration cost, but likely preserves the core problem that authoring and testing context stay fragmented across repositories.
    • Idea C: delay authoring-topology change until a broader BetterFleet-wide repository strategy is ready.
    • More globally coherent, but blocks the immediate need for better agent ergonomics and side-by-side worktree testing.
    • Tradeoffs to compare:
    • immediate workflow gain versus migration complexity
    • authoring simplicity versus downstream sync complexity
    • faster experimentation versus transition risk
    • local comparison power versus additional workspace/tooling expectations
    • Preferred direction:
    • Idea A, because it addresses the immediate friction directly and creates a practical stepping stone toward worktree-based comparison workflows without requiring a full platform-wide restructuring first.

    Release Sequencing¶

    • Natural or value-based order:
    • First establish one authoritative authoring surface in bf-dev.
    • Then preserve or automate safe downstream synchronization for delivery continuity.
    • Then prove the workflow through real cross-service slices and side-by-side comparison use cases.
    • Later, decide whether broader BetterFleet-wide repository consolidation is still justified.
    • Smaller parts to solve first:
    • Remove per-repo authoring friction.
    • Make worktree-based parallel comparison practical.
    • Keep downstream delivery continuity explicit and safe.
    • Potential slices/releases:
    • Slice 1: unified bf-dev authoring surface and operating model
    • Slice 2: safe downstream synchronization and contributor/reviewer workflow hardening
    • Slice 3: explicit side-by-side validation patterns for current-versus-upcoming comparisons
    Made with Material for MkDocs
    BFDev Docs Assistant
    New conversation?
    Ask one focused question at a time, this helps the assistant provide accurate answers about what's been implemented in BetterFleet.