Repository navigation
docs planning RUST_STATION_INGESTION_RST00
Status: AUDIT_DONE — no implementation, no dependency, no fetch, no DB change.
Date: 2026-10-09. Scope: RUST_STATION_INGESTION_PLAN.md RST-00 only.
Language: English document; user communication in Portuguese.
- Directory owns stable station identity (
directory_stationsUUID), identifier history with partial unique index on active(kind, normalized_value), append-only location revisions and the single reviewed projection (current_point geography(Point, 4326),current_quality):backend/db/migrations/000002_directory.sql. - Registry staging owns bounded runs and per-row assertions with
idempotent replay key
(source, source_key, checksum); onlycompleteruns reconcile:000031_registry_sources.sql,backend/internal/modules/directory/adapters/registry/stage.go,reconcile.go. - API discovery is allowlisted to
revendedoresapi.anp.gov.brwith DNS/IP/redirect guards:api.go. Code presence is not proof of a public permitted nationwide API; validate docs, limits and a bounded sample before use. - Coordinates are nullable staged evidence only (
000032); CSV rows stay NULL (honest unknown, never centroid-fabricated). Onlyreviewedquality projects through the location-revision chain. - Profiles/operator revisions reference
directory_stations; no second station registry:000036_station_profiles.sql. - Go remains API/domain/publication owner. Rust prepares assertions; it gets no general write access to canonical, community, auth, media or social tables. Narrow staging COPY is a later option.
- Photo capture gate is unchanged:
PhotoCaptureRadiusM = 150.0,SitePreciserequired, fix integrity enforced (backend/internal/modules/community/application/photo_capture.go). A station at a city boundary may be nearby across that boundary; city is never a proximity-security boundary.
Observed 13-column registry header (plan, 2026-10-08):
CODIGOISIMP;AUTORIZACAO;DATAPUBLICACAO;RAZAOSOCIAL;CNPJ;ENDERECO;COMPLEMENTO;BAIRRO;CEP;UF;MUNICIPIO;BANDEIRA;DATAVINCULACAO
Required normalized contract (registry/policy.go):
CNPJ, RAZAO_SOCIAL, COD_IBGE, UF, SITUACAO
Gaps:
- No
COD_IBGE:MUNICIPIOis a name, not an IBGE code. Map name + UF through versioned normalization plus explicit aliases against the IBGE Localidades reference; ambiguous/unmatched rows enter quarantine. RFB municipality codes are a separate namespace. - No
SITUACAO:AUTORIZACAOis an authorization act reference andDATAPUBLICACAOis its publication date, not operation status or opening date. Dataset membership in an operating-retailer snapshot is evidence with a snapshot date; mapping it to authorization eligibility needs a tested Directory policy-owner rule. Missing rows never imply closure or revocation. - No coordinates, no IBGE code, no explicit status column. Keep
combined
ENDERECOunchanged alongside parsed components; road/km addresses need fixtures. - Feeding the real CSV directly into the current contract must
quarantine with
missing_columns(ValidateHeader/QuarantineRun). That is correct behavior, not a parser bug.
PMQC coordinates are candidates only: CnpjPosto, DataColeta,
Latitude, Longitude, declared SIRGAS 2000 / EPSG:4674, empty
coordinates permitted, no accuracy-in-metres field. Deduplicate by
sample identity/CNPJ/date/point; repeated assays are not independent
support. Official origin, decimal places and repeated rows do not
prove 150 m capture reliability. Do not auto-promote to reviewed
and do not use them in the 150 m rule without the location review
gate (RST-06): tested EPSG:4674 → EPSG:4326 transform, exact-CNPJ and
address/municipality/chronology checks, independent site/parcel
evidence where available, held-out stratified error measurement
(p50/p95/max in metres) before any calibrated threshold.
Pipeline:
verified official download + manifest
-> bounded Rust reader / source adapter (local file only)
-> pure normalization / identity + municipality validation
-> deduplication / coordinate candidates / quarantine
-> deterministic versioned JSONL + manifest + counts
-> Go-owned validation + staging loader
-> existing complete-run reconciliation
-> Directory + profile + reviewed-location projections
- Proposed crate
tools/station-prep/starts only after RST-00 approval. Suggested modules:source,parse,normalize,identity,municipality,geo_candidate,output,manifest,cli. Pure transforms stay independent of network/DB/runtime. No Rust HTTP API, Android JNI, microservice, parallel station database, or rewrite. NoCargo.tomlor dependency added in RST-00 (verified absent: notools/,rust/, or rootCargo.toml). - Streaming: bounded reader, reused buffers, bounded queues/batches,
typed quarantine with source row locator; accepted + duplicate +
quarantined counts always reconcile. Memory/speed claims require a
measured dataset. Note: current Go
StageCSVbuffers the snapshot up toMaxBytes; Rust must be true streaming, notReadAll. - Determinism: canonical typed-value hashing (no whitespace-only churn), stable output order independent of input order, bounded in-memory map with documented cap or external sorted spill/merge, identical source + bytes + parser/policy version is a no-op, older evidence never overwrites fresher facts, conflicts retain both assertions plus a review reason, no last-row-wins.
- Provenance per batch: format version, run ID, source identity/URLs/
edition, raw file hashes/bytes, parser/policy versions, start/end
time, municipality-reference hash, counts, completeness, per-output
hashes. Per row: stable source key, full normalized CNPJ text
(numeric/alphanumeric checksum vectors, leading zeroes preserved),
source SIMP/authorization references when supplied, raw/normalized
business/address fields, UF + IBGE code, independently evidenced
authorization/status facts, optional coordinate candidate
{latitude, longitude, original_crs, observed_at, accuracy_m: null, evidence_ref, review_state}. Unknown timestamps stay null. Latitude/longitude keep original CRS until a tested geospatial owner transforms them. - Three bounded output streams: accepted assertions, coordinate candidates, quarantine. JSONL first for inspection; CSV COPY export only after measurement. No Parquet/Arrow/Polars, no SQL string concatenation, no Tokio/reqwest/parallel pools/Rust PG client without measured need and failure/security tests.
- Publication atomicity limit (existing): reconciliation is complete-run gated but applies assertions individually; it is not an all-stations atomic snapshot switch. A versioned read projection plus active generation pointer would be a separate tested change.
- City/nearby reads start from existing indexes: municipality B-tree
and GiST on
current_point(000002). Candidate: composite B-tree on the measured predicate/order, e.g.(state, municipality_code, status, id)with keyset pagination by a stable tie-breaker; nearby viaST_DWithin(current_point, query_geography, radius_metres)plus exact-distance ordering on the reduced set. Partitioning only on RST-07 benchmarks across the workload including maintenance and uniqueness costs; otherwise keep the indexed baseline. Never one database/schema/table per city; never lose global active-CNPJ uniqueness or stable UUID foreign keys.
- Operating-membership → authorization/eligibility mapping rule (Directory policy owner).
- Encoding: UTF-8/BOM plus measured fallback, if needed.
- Changed-header handling and frozen alias/version policy.
- Municipality alias source version and update cadence.
- CRS transform owner and operation/version record.
- Dependency/license/MSRV pins with security review.
- Partitioning deferred to RST-07 benchmarks.
Freeze the synthetic source/batch contract: real-layout 13-column registry fixtures, PMQC repeated-assay/optional-coordinate fixtures, IBGE mapping fixtures, and versioned JSONL output manifest/schema. Decide operating-membership evidence mapping, encoding, changed-header handling and publication policy. No raw production rows in Git; dependency/license/MSRV decision belongs to RST-01.
Acceptance: synthetic fixtures cover valid row, bad/leading-zero/
alphanumeric CNPJ, unknown city, accent/encoding/header change,
quoted separator/newline, extreme record size, duplicate assays,
zero/NaN/swapped/out-of-Brazil points, date reversal, conflicting
older status; manifest validates checksums/schema/counts; docs link
clean and git diff --check passes. No implementation, live DB
change, or national fetch.
- 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-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-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-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-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-BASELINE_VALIDATION
- docs-planning-CI_PLAN
- docs-planning-COMMERCIAL_COMMUNITY_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-FAST_EXECUTION
- docs-planning-GAMES_OFFLINE_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PLAN
- docs-planning-LANDING_REDESIGN_EXECUTION_PROMPT
- docs-planning-MOBILE_DELIVERY_PLAN
- 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-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-COMMUNITY_EXPERIENCE
- docs-product-COMMUNITY_METRICS
- docs-product-COMMUNITY_MODERATION
- docs-product-COMMUNITY_PRIVACY_TERMS_PT_BR
- docs-product-LANDING_CONTENT_CONTRACT
- docs-product-LANDING_GUIDES_CONTRACT
- docs-product-LANDING_MOBILE_TUTORIAL_CATALOG
- 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-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 @ 08a54dc49c2e43a85aba56a7b56ae96d692cec61