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
In-App Docs Authoring
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
          • Quick workflow
          • Codex-driven workflow
          • Hand-editing workflow
          • What belongs in in-app docs
          • Source of truth
          • When docs must be updated
          • Editing pages and navigation
          • Screenshot workflow
          • Promoting screenshots into committed assets
          • Missing screenshots
          • Using Codex
        • 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
          • 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
    • Quick workflow
    • Codex-driven workflow
    • Hand-editing workflow
    • What belongs in in-app docs
    • Source of truth
    • When docs must be updated
    • Editing pages and navigation
    • Screenshot workflow
    • Promoting screenshots into committed assets
    • Missing screenshots
    • Using Codex
    1. Home
    2. Process
    3. Guides
    Accessibility & Usability Process general

    In-App Docs Authoring¶

    Use this workflow for BetterFleet in-app help documentation. The product repo is the source of truth, with bf-manage-web as the first concrete example.

    Use GitLab Feature Flags with this guide for Manage feature-flagged behavior so doc timing and visibility match the rollout stage.

    Quick workflow¶

    Use one of these two workflows:

    • Codex-driven workflow: the primary workflow for most documentation changes
    • Hand-editing workflow: for small surgical edits where you do not need Codex to help with screenshots, structure, or navigation

    Codex-driven workflow¶

    Use this by default.

    1. Work out what changed for the user.
    2. If the change affects what users see, expect, notice, or need to do, the docs likely need updating.
    3. Ask Codex to update the docs and tell it to use help-docs-authoring skill.
    4. Include what changed, which area of the product it affects, and whether screenshots are needed.
    5. Let Codex find and update the right page.
    6. For Manage, this will normally be under bf-manage-web/docs/help/.
    7. Codex should update the existing page first and only change structure when needed.
    8. If screenshots are needed, give them to Codex for review.
    9. Either paste the screenshot into Codex or save it to scratch/docs-images/.
    10. Codex should check that the screenshot is suitable, place accepted images into committed docs assets, and insert the markdown reference.
    11. If a screenshot is still missing, let Codex leave the standard TODO(doc-image) placeholder and tell you what still needs to be captured.
    12. Review the resulting change as normal.
    13. Confirm the wording matches the shipped behavior and that any navigation changes are intentional.
    14. Create a merge request in the product repo.
    15. For Manage docs, the change belongs in bf-manage-web and should go through the normal merge request and review process for that project.

    Hand-editing workflow¶

    Use this only for small surgical edits.

    1. Work out what changed for the user.
    2. If the change affects what users see, expect, notice, or need to do, the docs likely need updating.
    3. Find the existing page first.
    4. For Manage, start in bf-manage-web/docs/help/ and update the page that already matches the feature or workflow before creating anything new.
    5. Edit the markdown directly.
    6. Update the relevant index.md page so the guidance matches the shipped behavior.
    7. Keep it task-oriented and concise.
    8. Update navigation only if the structure changed.
    9. Edit bf-manage-web/docs/help/nav.json only when a page is added, removed, renamed, or moved.
    10. If screenshots are needed, switch back to the Codex-driven workflow.
    11. That is the safer path for reviewing, naming, placing, and linking images.
    12. Create a merge request in the product repo.
    13. For Manage docs, the change belongs in bf-manage-web and should go through the normal merge request and review process for that project.

    What belongs in in-app docs¶

    • task-oriented help that users need while using the product
    • explanations of user-visible behavior
    • explanations of user-relevant system behavior that changes what users should expect, notice, or do

    Do not use this workflow for BF Dev specs, BF Dev challenges, or support microsite content. Those are separate editorial streams.

    Source of truth¶

    • Keep in-app help docs in the product repo.
    • Manage source of truth:
      • markdown pages: bf-manage-web/docs/help/**/*.md
      • navigation: bf-manage-web/docs/help/nav.json
      • committed images: bf-manage-web/docs/help/_assets/
    • For Manage, documentation changes should be proposed and reviewed through a normal merge request in the bf-manage-web project.
    • Keep front matter minimal and local-only. Preserve only metadata needed by the product repo. Do not add external source metadata.

    When docs must be updated¶

    Update in-app docs whenever a change affects what users see, expect, notice, or need to do.

    This includes:

    • user-visible behavior changes
    • labels, helper text, and page wording changes
    • onboarding and task-flow changes
    • docs navigation or structure changes
    • behind-the-scenes behavior changes that alter user expectations or required user action

    If a code change ships without a corresponding docs update when one is needed, that is incomplete work.

    When rollout uses a Manage feature flag:

    • do not update general help as if the feature is broadly available while it is still Internal or Pre-Release
    • update help for the intended current audience when the flagged behavior changes what those users should see, expect, or do

    Editing pages and navigation¶

    For Manage, edit the relevant page under bf-manage-web/docs/help/ before creating new pages.

    • Prefer updating the existing page that matches the feature or workflow.
    • Add or move pages only when the information architecture genuinely needs to change.
    • Update nav.json only when a page is added, removed, renamed, or moved.
    • Prefer relative markdown links between docs pages.
    • Prefer committed asset references under _assets/.

    Screenshot workflow¶

    Place candidate screenshots in the shared intake folder:

    • scratch/docs-images/

    If it is easier, paste a screenshot straight into Codex first so it can be reviewed.

    • If Codex already has a local file path for the image, it can copy it into the docs asset workflow directly.
    • Otherwise, save the same image into scratch/docs-images/ before asking Codex to promote it into committed docs assets.

    Before committing any screenshot to docs, review it to confirm that it:

    • matches the page and state described in the documentation
    • is readable
    • is cropped appropriately
    • does not expose secrets, personal data, or environment-only noise
    • reflects the intended product, environment, and version closely enough for the documentation need

    If a screenshot is not suitable, recapture it before ingesting it.

    Accepted screenshots are copied into the committed product docs assets directory. For Manage, that is bf-manage-web/docs/help/_assets/.

    Use descriptive slugged filenames:

    • <doc-slug>-<short-topic>.<ext>

    Promoting screenshots into committed assets¶

    Use Codex to copy a screenshot from scratch/docs-images/ into the committed docs assets directory, rename it consistently, and print the markdown snippet to insert.

    Manage example:

    python3 .agents/skills/help-docs-authoring/scripts/ingest_doc_image.py \
      --source scratch/docs-images/sign-in-page.png \
      --docs-root bf-manage-web/docs/help \
      --doc-path getting-started/index.md \
      --topic sign-in-page \
      --alt "Sign in page"
    

    Do not link to files directly from scratch/.

    Missing screenshots¶

    If a screenshot is relevant but not yet available, insert an HTML comment placeholder instead of visible text:

    <!-- TODO(doc-image): capture <what to show>; save to scratch/docs-images/; ask Codex to ingest -->
    

    When asking someone to capture a screenshot, specify the exact screen state that should be shown.

    Using Codex¶

    When working with Codex on in-app help documentation, ask it to use the help-docs-authoring skill.

    Manage is the first implementation. Plan can adopt the same workflow later without changing the overall process shape.

    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.