Repository navigation
docs operator portal static hosting
Status: isolated local rehearsal implemented; production hosting is not selected or provisioned. This document records the scoped topology decision and the operator commands; it does not authorize a shared-edge, DNS, CDN or production change.
-
Rehearsal only: one pinned Caddy container
(
caddy:2.10.2-alpine@sha256:4c6e91c6…), loopback port18080, private release root under/tmp, no DNS/TLS/CDN and no API proxy. -
Private release root: directories
0700, files0600. Only the selectedcurrentsymlink is exposed to Caddy, read-only.state.jsonandreleases/never sit under a public document root. -
No shared edge mutation: the existing staging/production
infra/caddy/Caddyfileand Compose topologies are unchanged. Production host/CDN/TLS/permissions and the real public origin remain OWED to ESP-18. -
Preview remains noindex: the rehearsal Caddyfile sends
X-Robots-Tag: noindex, nofolloweven when the candidate contains an indexable sitemap.
<release-root>/
.promote.lock flock, 0600
state.json atomic release/rollback metadata, 0600
releases/<64hex>/ complete verified candidate, 0700/0600
current -> releases/<64hex> atomic symlink (the only served path)
portalgen.Verify must pass on the candidate before any copy. The publisher
copies into releases/.tmp-*, verifies the copied tree again, renames it to the
final content-addressed directory, and only then atomically replaces current.
A failed copy, hash mismatch, corruption, permission error, missing state or
concurrent promotion leaves the previous current unchanged. The OS releases
the flock on process exit; a crashed publisher cannot leave the lock held.
From the repository root:
cd backend && go build -o /tmp/portalrelease ./cmd/portalrelease
/tmp/portalrelease promote --artifact <candidate> --root <release-root> \
--site-url https://portal.example
/tmp/portalrelease promote --artifact <candidate> --root <release-root> \
--site-url https://portal.example --fence --expect-current <sha256:...>
/tmp/portalrelease verify --root <release-root> --site-url https://portal.example
/tmp/portalrelease rollback --root <release-root> --target <sha256:...> \
--site-url https://portal.example
/tmp/portalrelease withdraw --root <release-root> [--fallback <sha256:...>] \
--site-url https://portal.example-
--fencecompares the current content hash before doing any work; use it for automation.--expect-current ""is valid for the first promotion. -
rollbackonly selects a recorded, non-withdrawn release that still passesportalgen.Verify; it can recover from a corrupted current release. -
withdrawmarks the current release withdrawn. With--fallbackit atomically switches to that safe release; without it, thecurrentsymlink is removed so the static site returns 404. A withdrawn release cannot be rolled back. -
verifychecks the current symlink, state consistency and every file digest.
infra/caddy/portal-rehearsal.Caddyfile serves current with:
-
X-Content-Type-Options: nosniff,Referrer-Policy,X-Frame-Options,Permissions-PolicyandX-Robots-Tag: noindex; -
encode gzip; - immutable
Cache-Controlfor/assets/*and revalidation for document routes; - a real 404 response and
file_serverfallback; - no
/v1/*or/health/*proxy, so the static site does not depend on the API being up.
Run the complete isolated rehearsal:
PORTAL_ARTIFACT_A=/path/to/verified-candidate \
PORTAL_ARTIFACT_B=/path/to/second-verified-candidate \
PORTAL_SITE_URL=https://portal.example \
bash infra/scripts/rehearse-portal.shThe script builds portalrelease, validates Caddy, promotes A, starts the
loopback Caddy container, checks 200/404/headers/compression, promotes B,
rolls back A, corrupts A and rolls back to B, withdraws B to A, and finally
withdraws without fallback. It removes its container and temporary root unless
PORTAL_KEEP=1/PORTAL_RELEASE_ROOT is set.
Automatic refresh is implemented as a private worker job and remains off by default. It requires the enterprise export builder and these settings:
ANPFUEL_ENTERPRISE_PORTAL_REFRESH_ENABLED=true
ANPFUEL_ENTERPRISE_PORTAL_ROOT=/var/lib/abastevo/portal
ANPFUEL_ENTERPRISE_PORTAL_SITE_URL=https://portal.example
ANPFUEL_ENTERPRISE_PORTAL_INDEXABLE=false # explicit preview default
ANPFUEL_ENTERPRISE_PORTAL_SEARCH_JS=/opt/abastevo/search.<hash>.js # optionalANPFUEL_ENTERPRISE_EXPORT_ENABLED must also be true; PORTAL_ROOT must be an
absolute private path distinct from the export root. The worker schedules
enterprise-portal-refresh every 15 minutes. A fine or official publication
enqueues an export build; a successful new export state enqueues a refresh
immediately. The periodic job recovers lost hooks.
ANPFUEL_ENTERPRISE_PORTAL_OFFICIAL_ONLY=true restricts the whole refresh
pipeline to the admitted official-records slice: generation, verification,
promotion, rollback and withdrawal all run in official-only mode, and an
official-only refresh can never emit the full portal or widen sources. It
requires a published official revision (refuses without one) and withdraws to
404 instead of falling back to a full release. Build official-only candidates
with the maintained cmd/portalexport command (read-only repeatable-read
transaction over ExportPin/BuildOfficialExport, verified with
portalcheck --official-only); one-off uncommitted helpers are not a
substitute.The refresh reads the durable export candidate, generates a portal candidate,
verifies it, and promotes it with an expected-current fence. If the export state
and source pin are unchanged, or the generated content hash already equals the
current release, it records a no-op and leaves the release untouched. A failed
generation, copy, verification or promotion preserves the current release and
records failed in portal-refresh-state.json. Orphan candidates/portal-*
directories older than 24 hours are removed; a crash after promotion is
recovered as a no-op on the next run.
If the current FQ official revision is no longer published/withdrawn, the refresh:
- withdraws the affected release when the current release contains official records;
- uses a newer safe release without official records as fallback if one exists;
- otherwise removes
current, so the static site returns 404 rather than serving a withdrawn official slice.
The receipt records last_outcome, last_error, trigger, observed_at,
export_built_at, portal_built_at, released_at, withdrawn_at,
export_content_sha256, portal_content_sha256, source revision/lease/
edition/checksum/clock, generation seconds and observed/export-to-release
seconds. observed_at is the local source/build detection time and is not
the ANP publication delay; the source clock is recorded separately and no ANP
delay is inferred. The receipt is private and never served by the static root.
The capacity harness is an isolated local drill, not a CDN/VPS/production capacity claim. It requires an already verified release root with a current portal (ESP-13/14/15), a pinned Caddy image and the local Python/Node/Chrome toolchain. It never contacts the API, database, ANP or the shared edge.
# self-tests for the driver, stats, report and browser probe
make check-portal-capacity
# baseline: 100 req/s open-loop for 30 s, gzip, 32 clients
PORTAL_RELEASE_ROOT=/path/to/release-root PORTAL_SITE_URL=https://portal.example make portal-capacity
# concurrent update: atomic promote then fence-protected rollback
PORTAL_RELEASE_ROOT=/path/to/release-root PORTAL_SITE_URL=https://portal.example PORTAL_UPDATE_ARTIFACT=/path/to/second-verified-candidate PORTAL_UPDATE_AT_SECONDS=8 PORTAL_ROLLBACK_AT_SECONDS=16 make portal-capacityThe script freezes workload.json before the run with host CPU/memory/disk,
artifact content hash, images, browser version, URL mix, rates and budgets. It
starts the pinned Caddy container and a separate pinned Python generator
container on a private Docker network, samples Caddy CPU/memory/network/block
I/O, runs the existing qualified open-loop driver with gzip, then runs a
headless Chrome probe for /consultar/, a station page and /fiscalizacao/
with cold cache on desktop and mobile CPU-throttled viewports.
Predeclared defaults:
| Metric | Budget |
|---|---|
| p95 / p99 | 50 ms / 100 ms |
| errors | 1% |
| achieved rate | 90 req/s at 100 offered |
| Caddy CPU / memory | 80% / 256 MiB |
| browser FCP / LCP / CLS | 1500 ms / 2500 ms / 0.1 |
portal_report.py fails closed on a breached budget, drops, timeouts, |
|
| semantic mismatches, generator limitation, external/API browser resources or | |
| errors. The trap stops/removes the Caddy/generator containers and the private | |
| network; the release root is not modified by the baseline. The update scenario | |
| intentionally promotes the second artifact, then rolls back to the original | |
| content hash; its load mix excludes JS/sitemap across the switch so the drill | |
| tests the atomic HTML/CSS/shard/CSV path without pretending old assets are | |
retained. Results stay private under PORTAL_RESULTS_DIR (default |
|
/tmp/abastevo-portal-capacity-*). |
The measured numbers in ESP-16 evidence are local loopback only: no CDN, TLS, real network latency, real mobile device or VPS-direct campaign. Those campaigns and any production capacity statement remain OWED.
No campaign runs against ANP, and none may degrade the API. When a target environment is authorized, run the ESP-16 harness there with these frozen inputs: the budgets table above, a 100 req/s open-loop profile plus the atomic promote/rollback update scenario, and these stop conditions — any breached budget, any error/drop, Caddy above 80% CPU or 256 MiB, or any API/safety degradation observed during the window: stop immediately, roll back to the last safe release, and record the failed campaign without rerunning for a better number.
infra/scripts/preview_portal.sh runs an isolated HTTPS preview with Caddy's
local internal CA, a noindex edge and a dedicated private release root. It does
not touch the shared edge, DNS, API, database or ANP. It promotes the noindex
candidate, starts https://localhost:18443 (HTTP :18082 redirects), verifies
TLS/headers/cache, probes desktop/mobile accessibility, then promotes a full
corrected candidate, rolls back and rehearses a release-root backup/restore.
PORTAL_PREVIEW_ROOT=/path/to/new-preview-root PORTAL_PREVIEW_ARTIFACT_A=/path/to/noindex-candidate PORTAL_PREVIEW_ARTIFACT_B=/path/to/full-corrected-candidate PORTAL_SITE_URL=https://portal.example make preview-portalChecks are fail-closed:
- HTTPS/HTTP2, TLS 1.2 verification against the copied internal CA, HSTS, HTTP->HTTPS 308, gzip, immutable assets, revalidation and noindex headers;
- dated period/source/checksum/official disclaimers, no-API navigation and no external resources;
- metadata/landmarks, one
h1, labelled controls, non-empty links, skip link, first-focus order and visible 3 px focus outline; - JS-disabled state directory/station navigation;
- 200% font mobile reflow with no document horizontal overflow and no small primary targets;
- screenshots for desktop, mobile-large-font and JS-disabled states;
- A→B promotion and rollback under the preview edge;
- backup of
state.json,releases/andcurrent, restore verification and rollback between releases.
Results live under PORTAL_RESULTS_DIR
(/tmp/abastevo-portal-preview-* by default). The internal CA is copied there
for the TLS check and is not a public certificate. The noindex A release is the
final preview current; the full B candidate is used only for the correction /
recovery rehearsal under the same noindex edge. B's own meta may be indexable
because it is a publication candidate; the preview edge header blocks indexing.
The release root is private and reproducible; back up state.json, releases/
and the current symlink together. The private current pointer governs
promotion only: whatever serves HTTP (edge config, static root, a serve copy)
is a separate pointer owned by the same maintenance step — see the
serving-pointer contract in the publication gate. Restore into a new private root, run
portalrelease verify --root <restored> --site-url <origin>, then rehearse
rollback across the restored releases before switching any preview. The ESP-17
rehearsal verified the archive hash, restored current A, switched to B and back
to A. Do not restore a release root over a live current; publish through the
publisher and its fence.
If the current release is corrupt, use portalrelease rollback to a verified
previous release; if the state is corrupt or missing, restore the backed-up
root; if the official source is withdrawn, use withdraw (fallback or 404).
Public preview/VPS handoff remain OWED.
Promotion, rollback, refresh and withdrawal prepare and verify the retained
asset store before switching the serving pointer; retained never exposes a
page whose assets are still missing. portalrelease retain --root <root> --keep 2 --max-bytes 104857600 remains a repair/rebuild command.
The store contains the mandatory current release plus the newest
non-withdrawn releases within keep; a rollback target older than the
history window is still mandatory, so promotion ordering cannot break the
served page. Assets are hash-verified, safe assets/... paths, hardlinked
once when shared, and counted once. Budgets fail closed before the pointer
changes; the previous store stays intact.
retained is an atomically replaced symlink to an immutable generation
under retained-generations/; readers never observe the asset root missing
between two renames. A failed switch keeps the previous generation, an
interrupted build is cleaned on the next operation, and a missing link is
recovered from the newest complete generation. The edge serves /assets/*
from retained and everything else from current, so a cached old page
loads its exact dependencies after a switch or rollback with no version
mixing. withdraw rebuilds the store without the withdrawn release's
exclusive assets and removes older generations, so retired content cannot
return through retention or an old generation; shared assets stay while
referenced.
- Production host/CDN/TLS/DNS, shared-edge routing, cache purge, multi-host locking, disk quotas and capacity remain OWED to ESP-14's deployment scope and ESP-18. The current flock is single-host. See the public portal publication gate; the portal is not publicly released.
- Automatic refresh is composed and tested locally but disabled by default; no production activation or source schedule was changed.
- ESP-16 measured local loopback only. CDN and VPS-direct campaigns, real network/TLS, real mobile devices and production capacity remain OWED.
- ESP-17's preview uses a local internal CA and headless Chrome, not public TLS, a real device/screen reader or a shared preview edge. Public preview handoff remains OWED; see above.
- Real price publication remains blocked by ESP-07/rights; the rehearsal proves the selected event-level official artifact plus the synthetic price fixture.
- No API, database, source or shared edge is contacted by the publisher or the rehearsal.
portalgen --landing-url <origin> (scheme and host only) renders the same top
bar and footer as the landing home, with absolute links back to landing pages
(/como-usar/, /guias/, /privacidade/, /termos/, /excluir-conta/).
Without it the artifact stays fully self-contained and shows only portal links.
Brand fonts and logo are loaded from the landing's /assets/ on a shared
origin; a portal served alone falls back to system fonts.
- 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-adr-022-comaps-derived-native-map-engine
- 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-open-data-20261026-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-assets-map-icons-README
- 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-PR150_CUMULATIVE_INTEGRATION
- docs-backend-evidence-TEST_ENV_UPDATE_2026-10-24
- 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-enterprise-static-ESP-00
- docs-backend-evidence-enterprise-static-ESP-01
- docs-backend-evidence-enterprise-static-ESP-02
- docs-backend-evidence-enterprise-static-ESP-03
- docs-backend-evidence-enterprise-static-ESP-04
- docs-backend-evidence-enterprise-static-ESP-05
- docs-backend-evidence-enterprise-static-ESP-06
- docs-backend-evidence-enterprise-static-ESP-07
- docs-backend-evidence-enterprise-static-ESP-08
- docs-backend-evidence-enterprise-static-ESP-09
- docs-backend-evidence-enterprise-static-ESP-10
- docs-backend-evidence-enterprise-static-ESP-11
- docs-backend-evidence-enterprise-static-ESP-12
- docs-backend-evidence-enterprise-static-ESP-13
- docs-backend-evidence-enterprise-static-ESP-14
- docs-backend-evidence-enterprise-static-ESP-15
- docs-backend-evidence-enterprise-static-ESP-16
- docs-backend-evidence-enterprise-static-ESP-17
- docs-backend-evidence-enterprise-static-ESP-18
- docs-backend-evidence-enterprise-static-ESP-CORRECTIONS-02
- docs-backend-evidence-enterprise-static-ESP-STAGING-01
- 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-04
- docs-backend-evidence-ev-support-EE-05
- docs-backend-evidence-ev-support-EE-06
- docs-backend-evidence-ev-support-EE-07
- docs-backend-evidence-ev-support-EE-08
- docs-backend-evidence-ev-support-EE-09
- docs-backend-evidence-ev-support-EE-10
- docs-backend-evidence-ev-support-EE-11-REVIEW
- docs-backend-evidence-ev-support-EE-11
- docs-backend-evidence-ev-support-EE-12
- docs-backend-evidence-ev-support-EE-13
- docs-backend-evidence-ev-support-EE-14
- docs-backend-evidence-ev-support-EE-15
- docs-backend-evidence-ev-support-EE-16
- docs-backend-evidence-ev-support-EE-17
- docs-backend-evidence-ev-support-EE-18
- docs-backend-evidence-ev-support-EE-19
- docs-backend-evidence-ev-support-EE-20
- docs-backend-evidence-ev-support-EE-21
- docs-backend-evidence-ev-support-EE-22
- docs-backend-evidence-ev-support-EE-23
- docs-backend-evidence-ev-support-EE-24
- docs-backend-evidence-ev-support-EE-25-MEX-31-GAP
- docs-backend-evidence-ev-support-EE-25
- docs-backend-evidence-ev-support-EE-26
- docs-backend-evidence-ev-support-EE-27
- docs-backend-evidence-ev-support-EE-28
- docs-backend-evidence-ev-support-EE-29
- docs-backend-evidence-ev-support-EE-30
- docs-backend-evidence-ev-support-EE-31
- docs-backend-evidence-fuel-quality-FQ-PORTAL-READY
- 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-maps-MAP-00
- docs-backend-evidence-maps-MAP-02
- docs-backend-evidence-maps-MAP-03
- docs-backend-evidence-maps-MAP-04
- docs-backend-evidence-maps-MAP-05
- docs-backend-evidence-maps-MAP-06
- docs-backend-evidence-maps-MAP-07
- docs-backend-evidence-maps-MAP-08
- docs-backend-evidence-maps-MAP-08_DIAGNOSIS
- docs-backend-evidence-maps-MAP-09
- docs-backend-evidence-maps-MAP-10
- docs-backend-evidence-maps-MAP-11
- docs-backend-evidence-maps-MAP-12
- docs-backend-evidence-maps-MAP-13
- docs-backend-evidence-maps-MAP-14
- docs-backend-evidence-maps-MAP-14_BUILD_RECOVERY
- docs-backend-evidence-maps-MAP-14_ENGINE_GATE
- docs-backend-evidence-maps-MAP-14_MULTI_ABI
- docs-backend-evidence-maps-MAP-14_REPRODUCIBILITY
- docs-backend-evidence-maps-MAP-14_SPIKE
- docs-backend-evidence-maps-MAP-14_T07_AUDIT
- docs-backend-evidence-maps-MAP-15
- docs-backend-evidence-maps-MAP-15_20_REMEDIATION_20261025
- docs-backend-evidence-maps-MAP-16
- docs-backend-evidence-maps-MAP-17
- docs-backend-evidence-maps-MAP-18
- docs-backend-evidence-maps-MAP-19
- docs-backend-evidence-maps-MAP-20
- docs-backend-evidence-maps-MAP-20_MINIMUM_LOCAL_20261025
- docs-backend-evidence-maps-MAP-21
- docs-backend-evidence-maps-MAP-22
- docs-backend-evidence-maps-MAP-23
- docs-backend-evidence-maps-MAP-24
- docs-backend-evidence-maps-MAP-25
- docs-backend-evidence-maps-MAP-26
- docs-backend-evidence-maps-MAP-27
- docs-backend-evidence-maps-MAP-28
- docs-backend-evidence-maps-MAP-29
- docs-backend-evidence-maps-MAP-30
- docs-backend-evidence-maps-MAP-31
- docs-backend-evidence-maps-MAP-32
- docs-backend-evidence-maps-MAP-33
- docs-backend-evidence-maps-map14-final-REPEAT_RUNTIME
- docs-backend-evidence-maps-map14-t07-SOURCE_OFFER
- docs-backend-evidence-maps-map14-t07-THIRD_PARTY_NOTICES
- 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-08
- docs-backend-evidence-mobile-expansion-MEX-09
- docs-backend-evidence-mobile-expansion-MEX-10
- docs-backend-evidence-mobile-expansion-MEX-11
- docs-backend-evidence-mobile-expansion-MEX-12
- docs-backend-evidence-mobile-expansion-MEX-13
- docs-backend-evidence-mobile-expansion-MEX-14
- docs-backend-evidence-mobile-expansion-MEX-15
- docs-backend-evidence-mobile-expansion-MEX-16
- 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-mobile-expansion-MEX-31
- docs-backend-evidence-mobile-expansion-MEX-32
- docs-backend-evidence-mobile-expansion-MEX-33
- docs-backend-evidence-mobile-expansion-MEX-34
- docs-backend-evidence-mobile-expansion-MEX-35
- docs-backend-evidence-mobile-expansion-MEX-36
- docs-backend-evidence-mobile-expansion-MEX-37
- docs-backend-evidence-mobile-expansion-MEX-38
- docs-backend-evidence-payments-PAY-00
- docs-backend-evidence-payments-PAY-01
- docs-backend-evidence-payments-PAY-02
- docs-backend-evidence-payments-PAY-03
- docs-backend-evidence-payments-PAY-04
- docs-backend-evidence-payments-PAY-05
- docs-backend-evidence-payments-PAY-06
- docs-backend-evidence-payments-PAY-07
- docs-backend-evidence-payments-PAY-08
- docs-backend-evidence-payments-PAY-09
- docs-backend-evidence-payments-PAY-10
- docs-backend-evidence-payments-PAY-11
- docs-backend-evidence-payments-PAY-12
- docs-backend-evidence-payments-PAY-13
- docs-backend-evidence-payments-PAY-14
- docs-backend-evidence-payments-PAY-15
- docs-backend-evidence-payments-PAY-16
- docs-backend-evidence-payments-PAY-17
- docs-backend-evidence-payments-PAY-18
- docs-backend-evidence-payments-PAY-19
- docs-backend-evidence-payments-PAY-20
- docs-backend-evidence-payments-PAY-21
- docs-backend-evidence-payments-PAY-22
- docs-backend-evidence-payments-PAY_THREAT_MATRIX
- docs-backend-evidence-premium-PRM08_T05_GATE_MATRIX
- docs-backend-evidence-premium-PRM_FIRST_TEN
- docs-backend-evidence-premium-PRM_NEXT_TEN
- docs-backend-evidence-reviews-RECENT_MAIN_PRS_AUDIT
- 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-UI_CONTAINER_GUIDELINES
- 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-area-organization
- docs-mobile-premium-fuel-category
- docs-mobile-stations-auto-sync-20261013
- docs-operations-MAP_ACCEPTANCE_RUNBOOK
- docs-operator-PORTAL_PUBLICATION
- 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-payments
- docs-operator-pilot-city
- docs-operator-portal-static-hosting
- 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-ENTERPRISE_DATA_STATIC_PORTAL_PLAN
- docs-planning-ENTERPRISE_DATA_STATIC_PORTAL_PROMPT
- 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-MAP_EV_AGENT_PROMPT
- docs-planning-MAP_EV_EXECUTION_PLAN
- docs-planning-MAP_EV_PLAN_VALIDATION
- docs-planning-MAP_EV_RESUME
- docs-planning-MAP_EV_SOURCE_REGISTER
- 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-STRIPE_ASAAS_PAYMENT_PLAN
- docs-planning-STRIPE_ASAAS_PAYMENT_PROMPT
- docs-planning-STRIPE_ASAAS_PROVIDER_ADMISSION
- docs-planning-STRIPE_ASAAS_PROVIDER_REGISTER
- docs-planning-WIKI_HOME_ADOPTION
- docs-planning-WORKFLOW_PLAN_VALIDATION
- docs-planning-archive-IOS_DEFERRED
- docs-planning-history-CONSOLIDATION_OPENING_20261006
- docs-planning-history-MAP_ENGINE_PROGRESS_BEFORE_ACCEPTANCE_20261024
- docs-planning-history-MAP_EV_RESUME_BEFORE_ENGINE_ACCEPTANCE_20261024
- docs-planning-history-MAP_REMEDIATION_PROGRESS_BEFORE_20261025
- 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-ENTERPRISE_DATA_OFFERING
- docs-product-ENTERPRISE_DATA_STATIC_PORTAL_CONTRACT
- docs-product-ENTERPRISE_PORTAL_ROUTES_AND_EDITORIAL
- docs-product-ENTERPRISE_SOURCE_ADMISSION
- 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-MAP_21_23_CONTRACT
- docs-product-MAP_25_CONTRACT
- docs-product-MAP_26_CONTRACT
- docs-product-MAP_27_CONTRACT
- docs-product-MAP_28_CONTRACT
- docs-product-MAP_29_PERFORMANCE_CONTRACT
- docs-product-MAP_DISCOVERY_CONTRACT
- 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-STRIPE_ASAAS_OFFER_POLICY
- docs-product-STRIPE_ASAAS_PAYMENT_CONTRACT
- 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 @ bbd96568180563ced975b96f8f89f7a3c242522e