Repository navigation
docs product EV_PREPARATION_CONTRACT
Date: 2026-10-21. State: CONTRACT_FROZEN / RUNTIME_PENDING.
Owns B-BR-EV-07/08/23 and BUC-EV-02/03/09/12 at the preparation boundary.
This is the envelope contract for charging-prepared-v1 and
vehicle-energy-reference-v1, separate from live API and old station-prep formats.
Planned schemas, trusted profiles, synthetic fixtures, byte/identity goldens, Rust primitives and local verifier are executable. No live paths, producer, Go bridge, database, source activation or app is added. The EE-02 typed contract remains authoritative for capabilities, numerical units, tariffs, measurements and public/private ports.
A batch directory contains exactly manifest.json, entities.ndjson,
decisions.ndjson and aliases.ndjson, all regular local files. Empty streams
are zero bytes, not one empty line. No symlinks, unknown artifact names, relative
traversal, absent descriptors or private source files are accepted in that folder.
The manifest binds format, byte/identity/privacy profiles, selected trusted
profile hash, rights hash, source revision, reference hash, sorted source input
inventory (logical filename, raw bytes/hash, root count), per-artifact byte/line/
hash descriptors and per-kind census. Source basenames are identifiers, never
paths to open. content_sha256 hashes the canonical manifest with that one field
removed; manifest framing LF is not part of its content identity.
A future preparer must read every admitted raw input and required reference, verify input bytes/hash, independently count all source units including nested children and produce one decision per unit. Truncation, conflicting same-key assertions, unknown required profile/rights, corrupt reference, invalid framing, limits or incomplete accounting abort the whole run; no accepted partial batch may replace the previous output. A successful parse is not license, publication, identity-link or trust approval. EE-04/05 own raw-source extraction/census and atomic old-output preservation; EE-06 owns the actual typed Go bridge and cancellation/close/race/resource acceptance. This microstage does not claim them.
The local verifier checks the prepared envelope and returns a minimized
summary only after every artifact validates. It explicitly returns
input_bytes_verified:false and source_admission_enabled:false. It never reads
raw source files, emits rows, accesses the network/DB or publishes. Its bounded
in-memory implementation is a contract oracle, not a production streaming bridge.
Existing station-prep ceilings are reused: total raw input descriptor bytes and
aggregate artifact bytes each <=100MiB, source roots/decision units and each stream
<=500,000. Records/manifests <=1MiB; strings <=64KiB; JSON depth <=32. Future
national workloads must prove these budgets or introduce a reviewed amendment;
never truncate to fit. The three typed clocks and per-payload field lists also
bound individual envelope arrays.
ev-json-v1 is UTF-8 without BOM, compact JSON, ASCII object keys sorted by byte
order, no Unicode normalization, original Unicode string values, JSON control
escaping (short escapes where defined, remaining controls lowercase \u00xx).
HTML characters and U+2028/U+2029 remain literal UTF-8; / is not escaped.
No floats, exponent numbers, duplicate JSON keys, non-finite numbers, unpaired
surrogates or integers outside ±9,007,199,254,740,991. Booleans are not integers.
Arrays retain order. NDJSON records are canonical objects plus one LF, including
the last record; the manifest is canonical JSON plus LF. Entities sort uniquely
by key, decisions by unit, aliases by alias key, inputs by filename. Field
provenance sorts by field; clocks are created_at, verified_at, status_at.
ev-source-key-v1 SHA256-hashes four UTF-8 fields, each preceded by its unsigned
32-bit big-endian byte length: domain ev-source-key-v1, lowercase source
namespace, entity kind and exact external ID. Namespace <=64 ASCII lower/digit/
hyphen bytes; external ID 1..256 UTF-8 bytes without control characters. Revision,
provider metadata, parent coordinates, payload and array order are excluded.
OCM PLACE uses its source ID; CONNECTION_GROUP uses PLACE-ID:Connection-ID so a
connection ID is scoped to its parent. Missing source identity quarantines; array
position is a locator, never a generated equipment identity.
An assertion digest hashes kind/key/parent_key/payload/rights_sha256/source_clocks only, using canonical bytes. Per-input unit locators and duplicate occurrences do not change that digest. Source clock fields retain the source observation or null, never fetch/save time; no generated/fetched time renews evidence. Source revision, reference and rights changes create a different batch content identity. An input corrected in a later revision can keep its stable source key.
Decision unit is logical-file#zero-based-root plus a bounded JSON pointer
relative to that root. Every source root has its own empty-pointer decision.
Every child has an existing parent in the same file/root and a descendant pointer.
PLACE/VEHICLE_REFERENCE are roots; EVSE -> PLACE; CONNECTOR -> EVSE;
CONNECTION_GROUP -> PLACE. Per kind, input = accepted + duplicates + quarantined;
root counts are separate. Manifest totals must equal the decisions, and every
accepted entity has exactly one accepted decision, with no orphan entity/child.
ACCEPTED references its emitted entity and assertion hash; DUPLICATE references an accepted unit with the same key/assertion, never a duplicate chain or silent first-wins conflict. Quarantine is held inside decisions, containing only unit, kind, typed reason and raw hash; key/external_id/assertion/duplicate target are null. No second quarantine stream is necessary. Quarantined descendants use PARENT_QUARANTINED. Raw contacts, comments, photos, private addresses, contributor GPS and arbitrary diagnostic/source payloads are absent. Typed public-place name and coordinates are source infrastructure assertions only; eligibility and PII minimization must be verified by the real source adapter before publication. UNKNOWN access cannot carry coordinates; a null coordinate needs its null pair.
Payload and field-provenance paths are closed by kind/profile. Public coordinates are bounded exact decimal strings (<=16 fractional places in this profile), not money/energy floats or contributor GPS; out-of-range/unsupported precision fails rather than rounding. Public source name/BR/reported point count, exact W, connector/current reference codes and reported group quantity are separate facts. Null/UNKNOWN retains unknown power/quantity/type; no default zero or guessed code. Reported group quantities and NumberOfPoints are not independently identified EVSE/connector counts or simultaneous capacity. An OCM connection row cannot create physical EVSEs by expanding Quantity. Static source clocks cannot claim live status.
Field provenance records all payload fields, including nulls, with source-relative paths; unit+input revision/hash supplies the parent locator. Provider attribution, license and change-notice obligations stay in the rights/profile record linked by hash, never become a source-controlled permission grant. API presentation requires the admitted EE-08/09 source record and EE-02 attribution, not only a digest.
Aliases are separate from input census, explicit REVIEWED_SOURCE_ID references with a proof digest and same-kind emitted target. Names/proximity do not merge identities. Alias key cannot also be an entity; targets cannot be aliases, so self/cycle/chained/unknown-target aliases fail. The proof hash is structural provenance, not verification of a real review: EE-04/06/07 still owe that proof and conflict handling at admission. Synthetic proofs never admit real links.
-
ocm-br-20261021-v1: candidate based on the EE-01 commit/reference/provider1 license hashes. PLACE and CONNECTION_GROUP only; exact known ID/clocks/field paths frozen. This minimal staging profile omits contact/comment/photo/free tariff text. Full-Brazil extraction, public eligibility, unknown lookup codes, exact source conversion, minimized-title review and real admission remain EE-04. -
pbe-2026-pdf-v1: actual PDF hash, VEHICLE_REFERENCE envelope and explicit RIGHTS_AND_LAYOUT_PENDING. There is no invented CSV/PDF row identity or model payload mapping. Nonempty output is refused until EE-05 resolves rights and publishes a separately versioned, reviewed row/field/unit profile. Empty diagnostic envelopes do not qualify or activate PBE. The VEHICLE_REFERENCE model_code example is synthetic only, not a frozen PBE field layout. -
synthetic-hierarchy-v1: CONTRACT_TEST_ONLY; never production-admissible. Six accepted entities: one place, one EVSE, two physical connectors, one aggregate connection group (reported quantity3), one vehicle reference. Four source roots, 14 units =6 accepted +5 duplicates +3 quarantine; one reviewed synthetic alias outside census. Duplicate/quarantined children never inflate physical counts.
All admission flags remain false. These profiles cite the actual EE-01 qualification; samples and CC-BY provider metadata do not authorize an entire corpus or private fields.
Profile IDs are immutable and append-only once accepted; new mapping, snapshot, license/rights, field or reference semantics get a new ID/hash. Keep old profiles and old station-prep formats readable. Unknown profile/required field/version is fatal, preserving the old accepted output. Extend the byte/envelope version for incompatible framing/identity/required shape changes. Adding an optional future producer does not silently reinterpret old hashes or relax privacy. A changed trusted license invalidates an old manifest under the new profile, even when artifact hashes are recomputed. Review explicit migration/replay before activation.
Run from the repository worktree:
PYTHONDONTWRITEBYTECODE=1 python3 scripts/tests/test-ev-prepared-contract.py
PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify-ev-prepared-contract.py contracts/testdata/ev/prepared-v1/nested
cargo +1.99.0 test --locked --offline --manifest-path tools/station-prep/Cargo.toml --lib --test ev_prepared_contract --test ev_contract_vectorsFrom backend, run go test -race -count=1 ./internal/platform/apicontract.
Rust and Python share exact byte/ID goldens; Go independently verifies schema and
reviewed UTF-8/framing hashes. Semantic negative tests reseal descriptor/content
hashes so missing roots, bad census/parents/duplicates/provenance/aliases/rights
cannot pass merely because hashes agree. The CLI late-artifact corruption test
requires empty stdout and a minimized reason. Real Rust->Go source parity and
runtime admission are expressly pending EE-04–06.
- Home
- Roadmap
- docs-ADR_INDEX
- docs-AI_ENGINEERING_CONTRACT
- docs-CURRENT_STATE_AUDIT
- docs-MIGRATION_PLAN
- docs-README
- docs-adr-001-kotlin-compose-stack
- docs-adr-002-price-import-immutability
- docs-adr-003-nominatim-reverse-geocode
- docs-adr-004-backend-scope-and-governance
- docs-adr-005-modular-monolith-and-postgresql
- docs-adr-006-official-catalog-and-exact-contracts
- docs-adr-007-anonymous-proof-of-possession
- docs-adr-008-privacy-and-retention
- docs-adr-009-community-consensus-and-projections
- docs-adr-010-private-object-evidence
- docs-adr-011-operations-and-android-gate
- docs-adr-012-licensing-and-hosted-business
- docs-adr-013-fast-phase-delivery
- docs-adr-014-functional-app-before-production-release
- docs-adr-015-kotlin-multiplatform-shared-domain
- docs-adr-016-android-commercial-community-ios-deferred
- docs-adr-017-station-profile-and-verified-representation
- docs-adr-018-project-batch-delivery
- docs-adr-019-android-vps-integration-first
- docs-adr-020-maintained-dev-main-delivery
- docs-adr-021-community-first-contribution
- docs-architecture
- docs-assets-brand-README
- docs-assets-flags-ATTRIBUTION
- docs-assets-fuel-icons-README
- docs-assets-games-fuel-v1-README
- docs-assets-home-art-README
- docs-assets-home-icons-README
- docs-assets-landing-fleet-android-20261012-BRIEF
- docs-assets-landing-hero-20261011-BRIEF
- docs-assets-landing-illustrated-20261012-BRIEF
- docs-assets-landing-illustrated-20261012-README
- docs-assets-landing-minimal-20261012-BRIEF
- docs-assets-landing-redesign-20261011-PREPARATION_EVIDENCE
- docs-assets-landing-redesign-20261011-README
- docs-assets-landing-redesign-20261011-REFERENCE_BRIEF
- docs-assets-landing-sync-20261012-BRIEF
- docs-attribution
- docs-backend-ANDROID_INTEGRATION_GUIDE
- docs-backend-ANP_INGESTION
- docs-backend-API_PLAN
- docs-backend-CI_PR127_RECOVERY
- docs-backend-CI_PR128_PR129_RECOVERY
- docs-backend-COMMUNITY_FIRST_POLICY
- docs-backend-COMMUNITY_PRICING_SPEC
- docs-backend-DATA_MODEL
- docs-backend-DOMAIN_MODEL
- docs-backend-GO1273_SECURITY_REVALIDATION
- docs-backend-INFRASTRUCTURE_PLAN
- docs-backend-PHOTO_CAPTURE_CONTRACT
- docs-backend-PHOTO_SUBSET_SUBMISSION_CONTRACT
- docs-backend-PREMIUM_API_CONTRACT
- docs-backend-PREMIUM_BILLING_RUNBOOK
- docs-backend-PREMIUM_CLOUD_PROTOCOL
- docs-backend-PRIVACY_NOTICE
- docs-backend-REGISTRY_DAILY_SYNC
- docs-backend-RST_VPS_HARDENING
- docs-backend-STATION_RELIABILITY_AUDIT_20261013
- docs-backend-TARGET_ARCHITECTURE
- docs-backend-TEST_STRATEGY
- docs-backend-TOOLCHAIN
- docs-backend-evidence-community-safety-COMMUNITY_FINAL_SAFETY
- docs-backend-evidence-community-safety-COMMUNITY_HOME_CONSOLIDATION
- docs-backend-evidence-community-safety-CS00_AUDIT
- docs-backend-evidence-community-safety-CS01_HELPFULNESS_CONTRACT
- docs-backend-evidence-community-safety-CS02A_HELPFULNESS_STORE
- docs-backend-evidence-community-safety-CS02B_HELPFULNESS_HTTP
- docs-backend-evidence-community-safety-CS03A_HELPFULNESS_QUOTA
- docs-backend-evidence-community-safety-CS03B_LIMITER_ROTATION
- docs-backend-evidence-community-safety-CS04_FEED_PLANS
- docs-backend-evidence-community-safety-CS05A_CONTRIBUTION_MODERATION
- docs-backend-evidence-community-safety-CS05B_REVIEW_ANNOTATION
- docs-backend-evidence-community-safety-CS06_PROJECTIONS_ISOLATION
- docs-backend-evidence-community-safety-CS07A_BENCH_HARNESS
- docs-backend-evidence-community-safety-CS08A_HELPFULNESS_CLIENT
- docs-backend-evidence-community-safety-CS08B_HELPFULNESS_VIEW
- docs-backend-evidence-community-safety-CS09A_CONSENT_CONTRACT
- docs-backend-evidence-community-safety-CS09B_CONSENT_STORE
- docs-backend-evidence-community-safety-CS09C_CONSENT_HTTP
- docs-backend-evidence-community-safety-CS10A_PROMOTION_CONTRACT
- docs-backend-evidence-community-safety-CS10B_DERIVATIVE_STORE
- docs-backend-evidence-community-safety-CS10C_WORKER_PURGE_SOAK
- docs-backend-evidence-community-safety-CS10D_TRAINING_ERASURE
- docs-backend-evidence-community-safety-CS11A_CONSENT_CLIENT
- docs-backend-evidence-community-safety-CS11B_CONSENT_VIEW
- docs-backend-evidence-community-safety-CS11C_PHOTO_OPT_IN
- docs-backend-evidence-community-safety-CS12A_CONSENT_LIVE
- docs-backend-evidence-community-safety-PRM_COMMUNITY_FIRST
- docs-backend-evidence-community-safety-PRM_COMMUNITY_FIRST_ROLLOUT
- docs-backend-evidence-community-safety-RVA01_INGRESS_CONTRACT
- docs-backend-evidence-community-safety-RVA02_ADMISSION_CONTRACT
- docs-backend-evidence-community-safety-RVA03_ERASURE_RECOVERY
- docs-backend-evidence-community-safety-RVA04_CONSENT_FENCE
- docs-backend-evidence-community-safety-RVA05_OUTPUT_RECOVERY
- docs-backend-evidence-community-safety-RVA06_MINIMIZATION_GATE
- docs-backend-evidence-community-safety-RVA07_DEADLINE_ENFORCEMENT
- docs-backend-evidence-community-safety-RVA08_OWNER_CONSENT
- docs-backend-evidence-community-safety-RVA08_STAGING_ACCEPTANCE_2026-10-12
- docs-backend-evidence-community-safety-RVA09_JWKS_ADMISSION
- docs-backend-evidence-community-safety-RVA_BATCH_DELIVERY_2026-10-13
- docs-backend-evidence-community-safety-SEC01A_ADMISSION_REGRESSIONS
- docs-backend-evidence-community-safety-SEC01B_MAILBOX_BOUND
- docs-backend-evidence-community-safety-SEC01C_ATOMIC_ADMISSION
- docs-backend-evidence-community-safety-SEC01D_RETRY_ROLLBACK
- docs-backend-evidence-community-safety-SEC02A_PROXY_REGRESSIONS
- docs-backend-evidence-community-safety-SEC02B_TRUSTED_RESOLVER
- docs-backend-evidence-community-safety-SEC02C_BUDGET_SPLIT
- docs-backend-evidence-community-safety-SEC03A_ATOMIC_RESERVATION
- docs-backend-evidence-community-safety-SEC03B_TRANSFER_BOUNDARY
- docs-backend-evidence-community-safety-SEC03C_PROVIDER_MATRIX
- docs-backend-evidence-community-safety-SEC03D_NAMESPACE_MONITORING
- docs-backend-evidence-community-safety-SEC04A_ERASURE_INVENTORY
- docs-backend-evidence-community-safety-SEC04B_DELETION_LINKAGE
- docs-backend-evidence-community-safety-SEC04C_ATTRIBUTION_TRAINING
- docs-backend-evidence-community-safety-SEC04D_REPLAY_LOCAL_CLEANUP
- docs-backend-evidence-community-safety-SEC05A_OVERDUE_ORIGINALS
- docs-backend-evidence-community-safety-SEC05B_SCHEDULING_CATCHUP
- docs-backend-evidence-community-safety-SEC05C_TRANSIENT_CACHE
- docs-backend-evidence-community-safety-SEC05D_BACKUP_ASSESSMENT
- docs-backend-evidence-community-safety-SEC05E_EVERY_COPY_SOAK
- docs-backend-evidence-community-safety-SEC06A_SOURCE_BOUNDS
- docs-backend-evidence-community-safety-SEC06B_XLSX_CEILINGS
- docs-backend-evidence-community-safety-SEC06C_OUTBOX_BOUNDS
- docs-backend-evidence-community-safety-SEC06D_RETRY_BUDGETS
- docs-backend-evidence-community-safety-SEC06E_MEASURED_HISTORIES
- docs-backend-evidence-community-safety-SEC07A_REFRESH_REUSE
- docs-backend-evidence-community-safety-SEC07B_JWKS_EXPIRY
- docs-backend-evidence-community-safety-SEC07C_ANDROID_REFRESH
- docs-backend-evidence-community-safety-SEC08A_LOCATION_ASSURANCE
- docs-backend-evidence-community-safety-SEC08B_ADVERSARIAL_CLIENT
- docs-backend-evidence-community-safety-SEC08C_ATTESTATION_DECISION
- docs-backend-evidence-community-safety-SEC08D_PHONE_MATRIX
- docs-backend-evidence-community-safety-SEC09A_CURRENT_HEAD_REVIEW
- docs-backend-evidence-community-safety-SEC09B_DEPENDENCY_SCANS
- docs-backend-evidence-community-safety-SEC09C_INTEGRATION_FAULT
- docs-backend-evidence-community-safety-SEC09D_STAGING_RUNBOOK
- docs-backend-evidence-community-safety-SEC09E_PROTECTED_DELIVERY
- docs-backend-evidence-community-safety-rva08-staging-20261012-README
- docs-backend-evidence-ev-support-EE-00
- docs-backend-evidence-ev-support-EE-01
- docs-backend-evidence-ev-support-EE-02
- docs-backend-evidence-ev-support-EE-03
- docs-backend-evidence-ev-support-EE-11-REVIEW
- docs-backend-evidence-ev-support-EE-11
- docs-backend-evidence-fuel-quality-FQ00_SOURCE_INVENTORY
- docs-backend-evidence-fuel-quality-FQ01_CONTRACTS
- docs-backend-evidence-fuel-quality-FQ02B_NATIVE_PMQC
- docs-backend-evidence-fuel-quality-FQ02C_SOURCE_CLOCKS
- docs-backend-evidence-fuel-quality-FQ02_QUALITY_PREP
- docs-backend-evidence-fuel-quality-FQ03_IDENTITY_RESOLUTION
- docs-backend-evidence-fuel-quality-FQ04A_ASSAY_LEDGER
- docs-backend-evidence-fuel-quality-FQ04B_EVENT_LEDGERS
- docs-backend-evidence-fuel-quality-FQ04C_REVISION_PROVENANCE
- docs-backend-evidence-fuel-quality-FQ05C_PREPARED_BRIDGE
- docs-backend-evidence-fuel-quality-FQ05W1_MEMBER_PROVENANCE
- docs-backend-evidence-fuel-quality-FQ05W2_ARCHIVE_PROCESS
- docs-backend-evidence-fuel-quality-FQ05W3_DIRECTORY_FENCE
- docs-backend-evidence-fuel-quality-FQ05W4_FILE_IMPORT
- docs-backend-evidence-fuel-quality-FQ05W5_WORKER_COMPOSITION
- docs-backend-evidence-fuel-quality-FQ05W6_DIRECTORY_REVALIDATION
- docs-backend-evidence-fuel-quality-FQ05W7_LIVE_DISCOVERY
- docs-backend-evidence-fuel-quality-FQ05W8_IMAGE_SCHEDULING
- docs-backend-evidence-fuel-quality-FQ05W_NATIVE_RUNTIME
- docs-backend-evidence-fuel-quality-FQ05_BACKFILL_DISCOVERY
- docs-backend-evidence-fuel-quality-FQ06_ENFORCEMENT_ADAPTER
- docs-backend-evidence-fuel-quality-FQ07R1_OFFICIAL_FINE_PREPARER
- docs-backend-evidence-fuel-quality-FQ07R2_VERIFIED_FINE_BRIDGE
- docs-backend-evidence-fuel-quality-FQ07R3A_NATIVE_FINE_STORAGE
- docs-backend-evidence-fuel-quality-FQ07R3B_NATIVE_FINE_PUBLICATION
- docs-backend-evidence-fuel-quality-FQ07R4A_NATIVE_FINE_FILE_IMPORT
- docs-backend-evidence-fuel-quality-FQ07R4B_NATIVE_FINE_WORKER
- docs-backend-evidence-fuel-quality-FQ07R5A_HISTORICAL_FINE_PREPARER
- docs-backend-evidence-fuel-quality-FQ07R5B_HISTORICAL_FINE_BRIDGE
- docs-backend-evidence-fuel-quality-FQ07R5C_HISTORICAL_FINE_STORAGE
- docs-backend-evidence-fuel-quality-FQ07R5D_HISTORICAL_FINE_PUBLICATION
- docs-backend-evidence-fuel-quality-FQ07R5E_HISTORICAL_FINE_WORKER
- docs-backend-evidence-fuel-quality-FQ07R6A_COMPANY_ASSOCIATION_POLICY
- docs-backend-evidence-fuel-quality-FQ07R6B_COMPANY_ASSOCIATION_STORAGE
- docs-backend-evidence-fuel-quality-FQ07R6C_COMPANY_ASSOCIATION_PUBLICATION
- docs-backend-evidence-fuel-quality-FQ07R6D_COMPANY_WORKER_COMPOSITION
- docs-backend-evidence-fuel-quality-FQ07R6E1_SCOPED_COMPANY_READS
- docs-backend-evidence-fuel-quality-FQ07_SANCTION_SNAPSHOTS
- docs-backend-evidence-fuel-quality-FQ08H_HISTORICAL_READS
- docs-backend-evidence-fuel-quality-FQ08_READ_API
- docs-backend-evidence-fuel-quality-FQ09_SIGNED_REPORTS
- docs-backend-evidence-fuel-quality-FQ11_DOCUMENT_FREE_REVIEW
- docs-backend-evidence-fuel-quality-FQ12_METHODOLOGY
- docs-backend-evidence-fuel-quality-FQ13_PROJECTIONS
- docs-backend-evidence-fuel-quality-FQ14A_PUBLIC_DIMENSIONS
- docs-backend-evidence-fuel-quality-FQ14B_ANDROID_PMQC
- docs-backend-evidence-fuel-quality-FQ15A_SIGNED_OWNER_CLIENT
- docs-backend-evidence-fuel-quality-FQ15B_ANDROID_OWNER_REPORTS
- docs-backend-evidence-fuel-quality-FQ16A_PUBLIC_OFFLINE_CACHE
- docs-backend-evidence-fuel-quality-FQ16B1_ENCRYPTED_JOURNAL
- docs-backend-evidence-fuel-quality-FQ16B2_DURABLE_DISPATCH
- docs-backend-evidence-fuel-quality-FQ_REVIEW_20261018
- docs-backend-evidence-mobile-expansion-DOMAIN_AUDIT_20261021
- docs-backend-evidence-mobile-expansion-MAIN_RECONCILIATION_20261022
- docs-backend-evidence-mobile-expansion-MEX-00
- docs-backend-evidence-mobile-expansion-MEX-01
- docs-backend-evidence-mobile-expansion-MEX-02
- docs-backend-evidence-mobile-expansion-MEX-03
- docs-backend-evidence-mobile-expansion-MEX-04
- docs-backend-evidence-mobile-expansion-MEX-05
- docs-backend-evidence-mobile-expansion-MEX-06
- docs-backend-evidence-mobile-expansion-MEX-07
- docs-backend-evidence-mobile-expansion-MEX-09
- docs-backend-evidence-mobile-expansion-MEX-10
- docs-backend-evidence-mobile-expansion-MEX-17
- docs-backend-evidence-mobile-expansion-MEX-18
- docs-backend-evidence-mobile-expansion-MEX-19
- docs-backend-evidence-mobile-expansion-MEX-20a
- docs-backend-evidence-mobile-expansion-MEX-20b
- docs-backend-evidence-mobile-expansion-MEX-20c
- docs-backend-evidence-mobile-expansion-MEX-20d
- docs-backend-evidence-mobile-expansion-MEX-20e
- docs-backend-evidence-mobile-expansion-MEX-20f
- docs-backend-evidence-mobile-expansion-MEX-21
- docs-backend-evidence-mobile-expansion-MEX-22
- docs-backend-evidence-mobile-expansion-MEX-23
- docs-backend-evidence-mobile-expansion-MEX-24
- docs-backend-evidence-mobile-expansion-MEX-25
- docs-backend-evidence-mobile-expansion-MEX-26
- docs-backend-evidence-mobile-expansion-MEX-27
- docs-backend-evidence-mobile-expansion-MEX-28
- docs-backend-evidence-mobile-expansion-MEX-29
- docs-backend-evidence-mobile-expansion-MEX-30
- docs-backend-evidence-premium-PRM08_T05_GATE_MATRIX
- docs-backend-evidence-premium-PRM_FIRST_TEN
- docs-backend-evidence-premium-PRM_NEXT_TEN
- docs-brand-APP_ICONS
- docs-brand-IDENTITY
- docs-commit-conventions
- docs-data-sources
- docs-glossary
- docs-license
- docs-local-build
- docs-mobile-KOTLIN_MULTIPLATFORM_AUDIT
- docs-mobile-android-developer-preview-key-session
- docs-mobile-bottom-tab-base-navigation
- docs-mobile-evidence-games-v1-README
- docs-mobile-games-mvp
- docs-mobile-games-polish-emulator
- docs-mobile-opt-home-community-feed-phase1
- docs-mobile-opt-home-community-feed-phase2
- docs-mobile-opt-home-community-feed-phase3
- docs-mobile-opt-home-community-feed-phase4
- docs-mobile-opt-home-community-feed-phase5
- docs-mobile-opt-home-community-feed-review-20261021
- docs-mobile-p12-t01-toolchain-baseline
- docs-mobile-p12-t02-portable-domain
- docs-mobile-p12-t03-application-ports
- docs-mobile-p12-t04-swift-shell
- docs-mobile-p12-t05-foundation-acceptance
- docs-mobile-p13-t05a-shared-auth
- docs-mobile-p13-t05b-android-adapters
- docs-mobile-p13-t05c-auth-screens
- docs-mobile-p17-t04-lifecycle-exit
- docs-mobile-p18-t01-acceptance-matrix
- docs-mobile-p19-t01-baseline
- docs-mobile-p19-t02-information-architecture
- docs-mobile-p20-t01-discovery-contract
- docs-mobile-p20-t02-explore-journey
- docs-mobile-p20-t03-station-detail
- docs-mobile-p20-t04-discovery-acceptance
- docs-mobile-p21-t01-contribution-contract
- docs-mobile-p21-t02-capture-review
- docs-mobile-p21-t03-outbox-status
- docs-mobile-p21-t04-storage-expiry
- docs-mobile-p22-t01-account-journey
- docs-mobile-p22-t02-ratings-comments-votes
- docs-mobile-p22-t03-moderation-support
- docs-mobile-p22-t04-abuse-acceptance
- docs-mobile-p23-city-community-feed
- docs-mobile-p23-t01-return-flows
- docs-mobile-p23-t02-onboarding-rules
- docs-mobile-p23-t03-metrics-operations
- docs-mobile-p23-t04-community-rehearsal
- docs-mobile-p24-t01-device-matrix
- docs-mobile-p24-t02-usability-accessibility
- docs-mobile-p24-t03-performance-memory
- docs-mobile-p24-t04-security-signoff
- docs-mobile-p32-home-commercial
- docs-mobile-p32-home-minimal
- docs-mobile-p32-icon-monochrome
- docs-mobile-p32-t01-public-profile
- docs-mobile-p32-t02-claim-export-import
- docs-mobile-p32-t03-management
- docs-mobile-p32-t04-offline-acceptance
- docs-mobile-p32-ui-completion
- docs-mobile-p34-t01-staging-inventory
- docs-mobile-p34-t02-environment
- docs-mobile-p34-t03-test-catalog
- docs-mobile-p35-station-page
- docs-mobile-p35-t01-directory-ports
- docs-mobile-p35-t02-explore-detail
- docs-mobile-p35-t03-search-regression
- docs-mobile-p36-account-continuity
- docs-mobile-p36-secure-storage-keyboard-integration
- docs-mobile-p36-secure-storage-keyboard
- docs-mobile-p36-t01-staging-accounts
- docs-mobile-p36-t02-feedback-screens
- docs-mobile-p36-t03-activity-rights
- docs-mobile-p37-camera-review
- docs-mobile-p37-image-ocr
- docs-mobile-p37-ocr-expanded-validation
- docs-mobile-p37-owner-scope-expiry
- docs-mobile-p37-photo-capture-eligibility
- docs-mobile-p37-photo-subset-android
- docs-mobile-p37-photo-subset-backend
- docs-mobile-p37-send-feedback-recovery
- docs-mobile-p37-split-price-ocr
- docs-mobile-p37-t01-contextual-capture
- docs-mobile-p37-t02-upload-outbox
- docs-mobile-p37-t03-storage-expiry
- docs-mobile-p38-t01-code-regression
- docs-mobile-p38-t02-manual-matrix
- docs-mobile-p38-t03-candidate-handoff
- docs-mobile-pagination-sync-device-20261020
- docs-mobile-pagination-sync-review-20261019
- docs-mobile-premium-fuel-category
- docs-mobile-stations-auto-sync-20261013
- docs-operator-access
- docs-operator-backup
- docs-operator-deploy
- docs-operator-dou-editions
- docs-operator-edge-cache
- docs-operator-feedback-moderation
- docs-operator-monitoring
- docs-operator-pilot-city
- docs-operator-profile-review
- docs-operator-recovery
- docs-operator-registry-runs
- docs-operator-retention
- docs-planning-ANDROID_VPS_PLAN
- docs-planning-ANDROID_VPS_PLAN_VALIDATION
- docs-planning-APP_CONSOLIDATION_EXECUTION_PROMPT
- docs-planning-APP_CONSOLIDATION_PLAN
- docs-planning-BASELINE_VALIDATION
- docs-planning-CI_PLAN
- docs-planning-COMMERCIAL_COMMUNITY_PLAN
- docs-planning-COMMUNITY_RELIABILITY_PLAN
- docs-planning-COMMUNITY_SAFETY_EXECUTION_PLAN
- docs-planning-COMMUNITY_SAFETY_EXECUTION_PROMPT
- docs-planning-CONTINUE_ANDROID_VPS_PROMPT
- docs-planning-DECISIONS
- docs-planning-DELIVERY_WORKFLOW
- docs-planning-DOCUMENT_VALIDATION
- docs-planning-ECONOMY_RETENTION_PLAN
- docs-planning-EV_FULL_SUPPORT_EXECUTION_PLAN
- docs-planning-EV_SOURCE_RESEARCH
- docs-planning-EV_SUPPORT_EXECUTION_PROMPT
- docs-planning-EV_SUPPORT_PLAN_VALIDATION
- docs-planning-FAST_EXECUTION
- docs-planning-FUEL_QUALITY_EXECUTION_PROMPT
- docs-planning-FUEL_QUALITY_IMPLEMENTATION_PLAN
- docs-planning-FUEL_QUALITY_REMAINING_HANDOFF
- docs-planning-FUTURE_EVIDENCE_BUSINESS_PLAN
- docs-planning-GAMES_OFFLINE_PLAN
- docs-planning-HOME_OFFLINE_EFFICIENCY_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PROMPT
- docs-planning-MOBILE_DELIVERY_PLAN
- docs-planning-MOBILE_EXPANSION_CONTINUATION
- docs-planning-MOBILE_EXPANSION_EXECUTION_PLAN
- docs-planning-MOBILE_EXPANSION_EXECUTION_PROMPT
- docs-planning-MOBILE_EXPANSION_PLAN_VALIDATION
- docs-planning-OFFLINE_CAPABILITY_INVENTORY
- docs-planning-OFFLINE_DECISION_FREEZE_CS15B1
- docs-planning-PHOTO_PRICE_CONTRIBUTION_PLAN
- docs-planning-PREMIUM_BACKEND_APP_PLAN
- docs-planning-PREMIUM_PLAN_VALIDATION
- docs-planning-PRM_COMMUNITY_FIRST_PROMPT
- docs-planning-PRM_COMMUNITY_FIRST_VALIDATION
- docs-planning-PROGRESS
- docs-planning-PROJECT_BATCH_FLOW_VALIDATION
- docs-planning-REQUIREMENTS_TRACEABILITY
- docs-planning-RISKS
- docs-planning-RST21_BUNDLE
- docs-planning-RUST_STATION_BENCHMARK_PLAN
- docs-planning-RUST_STATION_INGESTION_PLAN
- docs-planning-RUST_STATION_INGESTION_PROMPT
- docs-planning-RUST_STATION_INGESTION_RST00
- docs-planning-RUST_STATION_INGESTION_RST01
- docs-planning-RUST_STATION_INGESTION_RST02
- docs-planning-RUST_STATION_INGESTION_RST03
- docs-planning-RUST_STATION_INGESTION_RST04
- docs-planning-RUST_STATION_INGESTION_RST05
- docs-planning-RUST_STATION_INGESTION_RST06
- docs-planning-RUST_STATION_INGESTION_RST07
- docs-planning-RUST_STATION_INGESTION_RST08
- docs-planning-RUST_STATION_INGESTION_RST09
- docs-planning-RUST_STATION_INGESTION_RST10
- docs-planning-RUST_STATION_INGESTION_RST11
- docs-planning-RUST_STATION_INGESTION_RST12
- docs-planning-RUST_STATION_INGESTION_RST13
- docs-planning-RUST_STATION_INGESTION_RST14
- docs-planning-RUST_STATION_INGESTION_RST15
- docs-planning-RUST_STATION_INGESTION_RST16
- docs-planning-RUST_STATION_INGESTION_RST17
- docs-planning-RUST_STATION_INGESTION_RST18
- docs-planning-RUST_STATION_INGESTION_RST19
- docs-planning-RUST_STATION_INGESTION_RST20
- docs-planning-SEC00A_REPRODUCTION_RECORD
- docs-planning-SEC00B_ROUTE_INVENTORY
- docs-planning-SEC00C_BUDGET_FREEZE
- docs-planning-SECURITY_OFFLINE_CORRECTION_PLAN_2026-10-11
- docs-planning-SECURITY_REMEDIATION_PLAN_2026-10-11
- docs-planning-SKELETON_LOADING_PLAN
- docs-planning-STATIC_LANDING_PLAN
- docs-planning-STATION_CATALOG_PLAN
- docs-planning-STATION_PROFILE_PLAN
- docs-planning-WIKI_HOME_ADOPTION
- docs-planning-WORKFLOW_PLAN_VALIDATION
- docs-planning-archive-IOS_DEFERRED
- docs-planning-history-CONSOLIDATION_OPENING_20261006
- docs-planning-history-P01_FOUNDATION_EVIDENCE
- docs-planning-history-P01_P09_PROGRESS_20260930
- docs-planning-history-P09_LOCAL_PROGRESS_20260930
- docs-planning-history-P14_PROGRESS_20260930
- docs-planning-history-P15_PROGRESS_20260930
- docs-planning-history-P18_AND_BRAND_PROGRESS_20261001
- docs-planning-history-P32_UI_OPENING_20261005
- docs-planning-history-ROADMAP_BEFORE_MULTIPLATFORM_20260930
- docs-planning-history-WIKI_HOME_BEFORE_20261001
- docs-planning-history-reconciliation-20261013-README
- docs-planning-mobile-pagination-main-delivery-20261020
- docs-planning-repository-consolidation-20261006
- docs-planning-repository-reconciliation-20261013
- docs-planning-templates-PHASE_PR
- docs-planning-templates-PHASE_RECORD
- docs-planning-templates-TASK_ISSUE
- docs-play-store-listing
- docs-privacy-policy
- docs-product-APP_CONSOLIDATION_TARGET_CONTRACT
- docs-product-COMMUNITY_EXPERIENCE
- docs-product-COMMUNITY_METRICS
- docs-product-COMMUNITY_MODERATION
- docs-product-COMMUNITY_PRIVACY_TERMS_PT_BR
- docs-product-EV_FINANCIAL_METHOD
- docs-product-EV_PREPARATION_CONTRACT
- docs-product-EV_SUPPORT_CONTRACT
- docs-product-EV_TYPED_DATA_CONTRACT
- docs-product-FUEL_QUALITY_TARGET_CONTRACT
- docs-product-LANDING_CONTENT_CONTRACT
- docs-product-LANDING_GUIDES_CONTRACT
- docs-product-LANDING_MOBILE_TUTORIAL_CATALOG
- docs-product-MOBILE_EXPANSION_CONTRACT
- docs-product-MOBILE_EXPLORATION_CONTRACT
- docs-product-NOTIFICATION_CONTENT_CONTRACT
- docs-product-OPEN_SOURCE_BUSINESS
- docs-product-PREMIUM_FINANCIAL_METHOD
- docs-product-PREMIUM_PRODUCT_CONTRACT
- docs-product-PREMIUM_SOURCE_POLICY
- docs-product-PRODUCT_CONTRACT
- docs-product-REGISTRY_SOURCES
- docs-product-STATION_CATALOG
- docs-product-STATION_FUEL_FEEDBACK
- docs-product-STATION_PROFILE_CONTRACT_FREEZE
- docs-product-STATION_PROFILE_REPRESENTATION
- docs-product-VEHICLE_REGISTRATION_POLICY
- docs-product-pilot-plan
- docs-release-build
- docs-release-evidence-G09
- docs-release-evidence-batch-p32-p33-closure
- docs-release-evidence-g09-historical-4ce5aaf
- docs-release-evidence-landing-redesign
- docs-release-evidence-p00-app-icons-commercial-plan
- docs-release-evidence-p00-brand-publication
- docs-release-evidence-p08-t04-restore-drill
- docs-release-evidence-p08-t07-load
- docs-release-evidence-p08-t08-security
- docs-release-evidence-p09-g09-scoped-release
- docs-release-evidence-p09-local-runtime-validation
- docs-release-evidence-p09-t01-rehearsal
- docs-release-evidence-p09-t02-compatibility
- docs-release-evidence-p09-t04-functional-planning
- docs-release-evidence-p09-t05-wiki-overview
- docs-release-evidence-p10-t01-contract-harness
- docs-release-evidence-p10-t02-community-read-cache
- docs-release-evidence-p10-t03-device-keys
- docs-release-evidence-p10-t04-capture-ocr
- docs-release-evidence-p10-t05-outbox-media
- docs-release-evidence-p10-t06-price-ui
- docs-release-evidence-p10-t07-confirm-dispute
- docs-release-evidence-p10-t08-offline-release
- docs-release-evidence-p10-t09-temp-smoke
- docs-release-evidence-p13-t01-account-rules
- docs-release-evidence-p13-t02a-account-service
- docs-release-evidence-p13-t02b-pgstore
- docs-release-evidence-p13-t02c-transport
- docs-release-evidence-p13-t03a-oidc-verifier
- docs-release-evidence-p13-t03b-provider-links
- docs-release-evidence-p13-t03c-transport
- docs-release-evidence-p13-t04a-status-lifecycle
- docs-release-evidence-p13-t04b-binding
- docs-release-evidence-p13-t04c-transport-prover
- docs-release-evidence-p13-t04d-write-gate
- docs-release-evidence-p14-t01-feedback-domain
- docs-release-evidence-p14-t02-ratings
- docs-release-evidence-p14-t03-comments
- docs-release-evidence-p14-t04-votes
- docs-release-evidence-p14-t05a-reports-visibility
- docs-release-evidence-p14-t05b-export-erase
- docs-release-evidence-p15-t01-media-budgets
- docs-release-evidence-p15-t02a-portable-photo
- docs-release-evidence-p15-t02b-android-cache
- docs-release-evidence-p15-t03-backend-processing
- docs-release-evidence-p15-t04-expiry-restore
- docs-release-evidence-p15-t05-privacy-acceptance
- docs-release-evidence-p16-t01-location-risk
- docs-release-evidence-p16-t02-native-adapters
- docs-release-evidence-p16-t03a-server-verification
- docs-release-evidence-p16-t03b-intake-wiring
- docs-release-evidence-p16-t04-device-recovery
- docs-release-evidence-p17-t01-feedback-usecases
- docs-release-evidence-p17-t02-social-flows
- docs-release-evidence-p17-t03-iphone-integration
- docs-release-evidence-p17-t04-lifecycle-exit
- docs-release-evidence-p18-local-integration-exit
- docs-release-evidence-p18-t01-feature-matrix
- docs-release-evidence-p18-t02-performance-baselines
- docs-release-evidence-p18-t03-security-signoff
- docs-release-evidence-p24-g24-user-acceptance
- docs-release-evidence-p25-registry-exit
- docs-release-evidence-p25-static-landing
- docs-release-evidence-p25-t01-source-contracts
- docs-release-evidence-p25-t02-csv-staging
- docs-release-evidence-p25-t03-api-discovery
- docs-release-evidence-p25-t04-reconciliation
- docs-release-evidence-p25-t05-jobs-acceptance
- docs-release-evidence-p26-landing-guides
- docs-release-evidence-p26-regulatory-exit
- docs-release-evidence-p26-t01-edition-access
- docs-release-evidence-p26-t02-act-reconciliation
- docs-release-evidence-p26-t03-review-catchup
- docs-release-evidence-p27-intake-exit
- docs-release-evidence-p27-t01-signed-intake
- docs-release-evidence-p27-t02-verified-decisions
- docs-release-evidence-p27-t03-catalog-cache
- docs-release-evidence-p27-t04-suggest-journey
- docs-release-evidence-p27-t05-abuse-privacy
- docs-release-evidence-p29-catalog-exit
- docs-release-evidence-p29-t01-capacity
- docs-release-evidence-p29-t02-lifecycle
- docs-release-evidence-p29-t03-candidate
- docs-release-evidence-p30-profile-exit
- docs-release-evidence-p30-t01-contract-freeze
- docs-release-evidence-p30-t02-operator-profile
- docs-release-evidence-p30-t03-claims
- docs-release-evidence-p30-t04-proof-intake
- docs-release-evidence-p31-t01-signature-verify
- docs-release-evidence-p31-t02-authority
- docs-release-evidence-p31-t03-review-grants
- docs-release-evidence-p31-t04-manage-replies
- docs-release-evidence-p33-t01-adversarial
- docs-release-evidence-p33-t02-lifecycle
- docs-release-evidence-p33-t03-candidate
- docs-release-evidence-p34-vps-connection-exit
- docs-release-evidence-p35-live-discovery-exit
- docs-release-evidence-p36-live-community-exit
- docs-release-evidence-p37-live-contributions-exit
- docs-release-evidence-p38-app-acceptance-exit
- docs-releases-v1.0.0
- docs-releases-v2.0.0
- docs-releases-v3.0.0
- docs-releases-v3.1.0
- docs-screenshots-v2-README
- docs-screenshots-v3-README
- docs-security-AI_TRAINING_IMAGE_CONSENT_PLAN
- docs-security-FREE_ACCOUNT_ACCESS
- docs-security-LOCAL_MEDIA_LOCATION_POLICY
- docs-security-SECURITY_AUDIT_2026-10-11
- docs-security-SECURITY_OFFLINE_REASSESSMENT_2026-10-11
- docs-security-SECURITY_PRIVACY
- docs-security-evidence-audit-2026-10-11-README
- docs-security-evidence-reassessment-2026-10-11-README
- docs-security-identity-profile
- docs-tech-stack
- docs-use-cases-backend-use-cases
- docs-use-cases-uc-001-sync-price-tables
- docs-use-cases-uc-002-onboarding
- docs-use-cases-uc-003-select-location
- docs-use-cases-uc-004-search-municipality
- docs-use-cases-uc-005-view-municipality-prices
- docs-use-cases-uc-006-view-price-history
- docs-use-cases-uc-007-view-station-prices
- docs-use-cases-uc-008-manage-settings
- docs-use-cases-uc-009-select-survey-week
- docs-use-cases-uc-010-manage-vehicles
- docs-use-cases-uc-011-estimate-tank-fill-cost
- docs-use-cases-uc-012-resolve-location-from-device
- docs-use-cases-uc-013-navigate-to-station
- docs-use-cases-uc-014-fuel-price-drop-alerts
- docs-use-cases-uc-015-find-nearest-best-price-station
- docs-user-business-logic
Source: AlexandreZanata/brazil-fuel-prices @ c3de5c03bce626300da3f10c1b64820d6451f1fc