How daniball/boletines-locales works
This repository generates city-specific local-news editions, renders them for publication, and provides a website and review panel. The main workflow is: select a city and date, collect source items, select and draft stories, validate and render the edition, then save it for web and human review. The graph also preserves the city configuration, deterministic data rendering, and panel publishing branches. Edges are limited to relationships supported by excerpts, the source index, or explicit documentation; unsampled website wiring is not inferred.
Main entry points: edition.ts Edition runner · servidor.ts Review panel · ciudades City configurations · borrador.ts Generation command
Components 29
City configuration
- City registry
ciudades/index.ts - City configurations
ciudades - Common sections
ciudades/secciones-comunes.ts
Edition pipeline
- Edition runner
pipeline/steps/edition.ts - Collect step
pipeline/steps/collect.ts - Story selection
pipeline/steps/select.ts - AI drafting
pipeline/steps/draft.ts - Draft validation
pipeline/steps/validate.ts - Edition assembly
pipeline/steps/edition.ts - Date rules
pipeline/lib/fechas.ts - Edition storage
pipeline/lib/edicion.ts - Item identity
pipeline/lib/items.ts - Deduplication
pipeline/lib/dedupe.ts
Collection and rendering
- HTTP client
pipeline/lib/http.ts - Data collectors
pipeline/collectors - Weather collector
pipeline/collectors/aemet.ts - Fuel collector
pipeline/collectors/carburantes.ts - News collectors
pipeline/collectors - Data renderers
pipeline/render - WhatsApp renderer
pipeline/render/whatsapp.ts
Review and delivery
- Edition website
src/pages - Review panel
panel/servidor.ts - Panel views
panel/vistas.ts - Git publisher
panel/git.ts - Generation command
scripts/borrador.ts
Other components
- Editor / operator
- AEMET
- Fuel-price API
- News sources
Connections 33
- Editor / operator → Generation command: runs generation
- Generation command → City registry: resolves city
scripts/borrador.ts - City registry → City configurations: registers cities
ciudades/index.ts - City configurations → Common sections: uses sections
ciudades/jaen/config.ts - City configurations → Weather collector: configures
ciudades/jaen/config.ts - City configurations → Fuel collector: configures
ciudades/jaen/config.ts - City configurations → News collectors: configures
ciudades/jaen/config.ts - Generation command → Edition runner: starts edition
scripts/borrador.ts - Edition runner → Collect step: runs collection
pipeline/steps/edition.ts - Edition runner → Story selection: selects stories
pipeline/steps/edition.ts - Edition runner → AI drafting: requests draft
pipeline/steps/edition.ts - Edition runner → Draft validation: validates draft
pipeline/steps/edition.ts - Edition runner → Edition assembly: assembles edition
pipeline/steps/edition.ts - Edition runner → Date rules: uses dates
pipeline/steps/edition.ts - Edition runner → Edition storage: reads and writes
pipeline/steps/edition.ts - Edition runner → WhatsApp renderer: renders message
pipeline/steps/edition.ts - Collect step → HTTP client: uses client
pipeline/steps/collect.ts - Weather collector → HTTP client: fetches data
pipeline/collectors/aemet.ts - Fuel collector → HTTP client: fetches data
pipeline/collectors/carburantes.ts - Weather collector → AEMET: requests forecast
pipeline/collectors/aemet.ts - Fuel collector → Fuel-price API: requests prices
pipeline/collectors/carburantes.ts - News collectors → News sources: collects news
- Data collectors → Item identity: assigns IDs
pipeline/collectors/aemet.ts - Story selection → Deduplication: deduplicates items
pipeline/steps/select.ts - Item identity → Deduplication: normalizes URLs
pipeline/lib/items.ts - Edition assembly → Data renderers: uses templates
pipeline/steps/edition.ts - Review panel → City registry: resolves city
panel/servidor.ts - Review panel → Edition storage: reads and saves
panel/servidor.ts - Review panel → WhatsApp renderer: previews message
panel/servidor.ts - Review panel → Panel views: renders views
panel/servidor.ts - Review panel → Generation command: regenerates draft
panel/servidor.ts - Review panel → Git publisher: publishes commit
panel/servidor.ts - Edition storage → Edition website: serves editions