Costa Rica PMESII-PT / ASCOPE OSINT Collection System - Design Sketch

Working designation: GUANACASTE WATCH (GW). Pre-model architecture sketch for discussion; not a cell, not a collection map. On design approval this formalizes as a d03 platform cell (hardware + software stack, mbse new) plus a d01 system deliverable (the sellable monitoring service it powers), with seams declared in the manifest. Underscore-prefixed so verify’s COLL01 naming rule does not apply.

Services this system delivers: OSINT-036 Continuous Country Risk Monitoring and OSINT-030 Periodic Geopolitical Briefing (both scoped to Costa Rica), the OSINT-053 daily intelligence brief, and T0 flash alerts under the OSINT-064 production-tier clocks. It is the collection backbone that SYS-008 v2 (protective-intelligence stream, roadmap sub-project #6) consumes. Client anchor: real-estate development program in Palmira, Carrillo canton, Guanacaste province (primary project: Parque Tempisque, plus code HC54+F2).

1. Purpose and scope

One sentence: a self-hosted array of Beelink mini computers that continuously scrapes Costa Rican news, legislation, government publications, social media, Telegram, and economic/environmental feeds, normalizes and enriches every item, tags it against the PMESII-PT x ASCOPE grid, scores it against client watch items (L x I), and emits decision-support products: flash alerts within one hour, a daily intelligence brief, and periodic risk summaries.

Problem-space boundary: the system automates collection, processing, and first-pass exploitation. Analysis and judgment remain human. Every automated product passes the OSINT-064 quality gates (QG1 source/grade check, QG2 analytic review) before client release; the system drafts, the analyst signs.

1.1 Areas of interest (AOI rings)

Every ingested item is geotagged to the tightest ring it resolves to. Ring weighting drives alert priority: the same event class scores higher the closer the ring.

        +---------------------------------------------------------------+
        |  R5  REGIONAL: Nicaragua border dynamics, CAFTA region,       |
        |      transnational crime corridors, US policy toward CR       |
        |   +--------------------------------------------------------+  |
        |   |  R4  NATIONAL: Costa Rica - legislation, executive,     |  |
        |   |      BCCR/macro, national security posture, elections   |  |
        |   |   +------------------------------------------------+   |  |
        |   |   |  R3  PROVINCE: Guanacaste - water policy,      |   |  |
        |   |   |      tourism economy, ZMT enforcement,         |   |  |
        |   |   |      coastal narco activity, Liberia airport   |   |  |
        |   |   |   +----------------------------------------+   |   |  |
        |   |   |   |  R2  CANTON: Carrillo + neighbors      |   |   |  |
        |   |   |   |      (Santa Cruz, Liberia, Filadelfia) |   |   |  |
        |   |   |   |      municipal acts, permits, crime    |   |   |  |
        |   |   |   |   +--------------------------------+   |   |   |  |
        |   |   |   |   |  R1  SITE: Palmira district /  |   |   |   |  |
        |   |   |   |   |  Parque Tempisque project      |   |   |   |  |
        |   |   |   |   |  (HC54+F2) - direct mentions,  |   |   |   |  |
        |   |   |   |   |  adjacent land, ASADA, road    |   |   |   |  |
        |   |   |   |   +--------------------------------+   |   |   |  |
        |   |   |   +----------------------------------------+   |   |  |
        |   |   +------------------------------------------------+   |  |
        |   +--------------------------------------------------------+  |
        +---------------------------------------------------------------+

2. Hardware architecture

Design rule carried over from the loadout work (SYS-003/004/009/010, BIZ-013): a startup-now tier that runs the whole mission on minimum capital, and a growth tier behind named triggers. All nodes are Beelink mini PCs on a single bench/shelf at the TOC; nothing needs to be physically in Costa Rica. Collection reaches the country over the wire through managed egress.

2.1 Node roles

NodeNameClass (startup)RAM / storageRole
N1GW-COLLECTIntel N100/N150 class (Beelink EQ-series)16 GB / 500 GB NVMeScraper array: all ingest containers, headless browsers, RSS pollers, Telegram client, change-detection watchers
N2GW-CORERyzen 7/9 8-core class (Beelink SER-series)64 GB / 2 TB NVMe + 4 TB SATA SSDQueue, PostgreSQL, vector DB, search index, NLP enrichment workers, brief generator, dashboard, Telegram bot
N3GW-INFER (growth)Ryzen AI / GPU-capable class (Beelink GTi-series)64-128 GBLocal LLM inference: summarization, PMESII-PT classification, translation at volume; removes per-token API dependence
N4GW-COLLECT-2 (growth)Same as N116 GB / 500 GBSecond scraper node: egress diversity, hot spare, expansion to a second country

Growth triggers, named per the BIZ-013 convention: stand up N3 when monthly LLM API spend exceeds the amortized node cost for two consecutive months, or when a client contract prohibits third-party API processing. Stand up N4 when lane count exceeds N1 headroom (sustained CPU > 70 percent), or when a second country AOI is sold.

Startup tier is therefore two boxes. N100-class handles scraping easily (scraping is I/O-bound); the 8-core box carries everything stateful. No sourcing/pricing in this sketch by design; BOM pricing follows the SYS-cell pattern once the design is approved.

2.2 Physical and network topology

                            INTERNET
                                |
                    +-----------+-----------+
                    |                       |
             [ISP primary]          [Starlink Mini]        <- SYS-003 asset,
                    |                (failover WAN)            already owned
                    |                       |
                +---+-----------------------+---+
                |   GL.iNet router / firewall    |          <- SYS-004 family
                |   VLAN10 mgmt | VLAN20 scrape  |
                +---+---------------------+------+
                    |                     |
             [gigabit switch]        (Wi-Fi mgmt only)
              |      |      |
        +-----+  +---+---+  +------+
        | N1  |  |  N2   |  | N3/N4|                        <- growth slots
        | GW- |  | GW-   |  | (emp-|
        | COL |  | CORE  |  |  ty) |
        +--+--+  +---+---+  +------+
           |         |
           |         +--[USB/SATA: 4TB cold archive, weekly rotate]
           |
           +--[egress: WireGuard tunnels to proxy providers, per-lane]
                    |
        +-----------+------------------+
        |           |                  |
   [residential  [datacenter      [direct egress:
    rotating      proxy pool       RSS + official
    proxies:      general web      .go.cr sources,
    X, Facebook,  scraping]        no proxy needed]
    Telegram]
                                                All nodes: Tailscale mesh
   [UPS 600VA+: router, switch, N1, N2]         for admin from anywhere;
                                                no inbound ports open.

Connectivity decisions embedded in the diagram:

  • Two WANs. Primary ISP plus the already-owned Starlink Mini (SYS-003) as failover so continuous-monitoring SLA (OSINT-036 section 5) survives an ISP outage.
  • VLAN separation. Management traffic never shares a segment with scrape egress. Scraper containers on N1 can only reach the internet through the tunnel interfaces; a proxy failure fails closed, not open into direct egress that burns the TOC’s IP.
  • Three egress classes. Official government sources (.go.cr, gazette, central bank) are public documents fetched politely and directly with an honest user agent and rate limits. General news scraping rides datacenter proxies. Platform collection (X, Facebook, Telegram) rides residential rotating proxies with one isolated identity per platform, never cross-contaminated.
  • Zero inbound surface. Tailscale mesh for administration and the analyst dashboard; the firewall accepts no inbound connections.

2.3 Runtime layout per node

  N1 GW-COLLECT (Docker Compose)             N2 GW-CORE (Docker Compose)
  +--------------------------------+         +--------------------------------+
  | scheduler (Prefect worker)     |         | prefect-server (orchestrator)  |
  | rss-poller        (~40 feeds)  |         | redis        (queue + cache)   |
  | gazette-watch     (La Gaceta)  |  ---->  | postgres     (system of record)|
  | legis-watch       (Asamblea)   |  queue  | qdrant       (vector store)    |
  | regulator-watch   (SETENA etc) |  over   | meilisearch  (full-text)       |
  | news-spiders      (Scrapy)     |  redis  | enrich-workers x4:             |
  | browser-pool      (Playwright) |  ---->  |   lang-detect | translate      |
  | telegram-client   (Telethon)   |         |   NER (es)    | geoparser      |
  | x-collector       (per lane)   |         |   dedup       | embedder       |
  | fb-page-collector             |         | classifier   (PMESII/ASCOPE)   |
  | reddit-poller                 |         | scorer       (LxI vs watch)    |
  | econ-feeds        (BCCR, INEC) |         | brief-builder (0500 CST cron)  |
  | geo-env-feeds     (IMN, OVSI-  |         | alert-bot    (Telegram out)    |
  |                    CORI, CNE)  |         | dashboard    (analyst UI)      |
  | health-exporter               |         | grafana/uptime (self-monitor)  |
  +--------------------------------+         +--------------------------------+
   stateless: any container can be            stateful: nightly pg_dump +
   rebuilt from git + config repo             restic to offsite + cold disk

3. System data flow

flowchart LR
    subgraph SRC["Costa Rica source landscape"]
        S1["Official / legal<br/>La Gaceta, Asamblea SIL,<br/>SCIJ, SETENA, MINAE,<br/>municipal acts"]
        S2["News media<br/>national + Guanacaste<br/>local outlets"]
        S3["Platforms<br/>X, Telegram,<br/>Facebook pages, Reddit"]
        S4["Econ / env feeds<br/>BCCR, INEC, IMN,<br/>OVSICORI, CNE"]
    end

    subgraph N1["N1 GW-COLLECT - ingest lanes"]
        L1["watchers + spiders<br/>(cadence per lane)"]
        L2["browser pool<br/>(JS-heavy targets)"]
        L3["platform clients<br/>(isolated identities)"]
    end

    Q[("Redis queue<br/>raw items")]

    subgraph N2["N2 GW-CORE - processing"]
        P1["normalize<br/>one item schema"]
        P2["dedup<br/>URL + MinHash"]
        P3["enrich<br/>lang, translate es-en,<br/>NER, geoparse to AOI ring"]
        P4["classify<br/>PMESII-PT variables +<br/>ASCOPE entity roles"]
        P5["score<br/>L x I vs watch items,<br/>tripwire evaluation"]
    end

    subgraph STORE["storage"]
        D1[("Postgres<br/>items + entities + events")]
        D2[("Qdrant<br/>embeddings")]
        D3[("Meilisearch<br/>full text")]
        D4[("evidence archive<br/>raw capture + hash")]
    end

    subgraph OUT["products (human gate QG1/QG2 before release)"]
        O1["T0 flash alert<br/>Telegram, <= 1h clock"]
        O2["daily intel brief<br/>0600 CST, OSINT-053 format"]
        O3["weekly geopolitical summary<br/>OSINT-030 cadence"]
        O4["continuous risk register<br/>OSINT-036 watch-item state"]
        O5["analyst dashboard<br/>search, timeline, map"]
    end

    S1 --> L1
    S2 --> L1
    S2 --> L2
    S3 --> L3
    S4 --> L1
    L1 --> Q
    L2 --> Q
    L3 --> Q
    Q --> P1 --> P2 --> P3 --> P4 --> P5
    P1 -.raw capture.-> D4
    P5 --> D1
    P3 --> D2
    P3 --> D3
    P5 -->|"tripwire fired<br/>LxI >= 16"| O1
    D1 --> O2
    D1 --> O3
    D1 --> O4
    D1 --> O5
    D2 --> O5
    D3 --> O5

Item lifecycle contract: every item that survives dedup carries, at minimum: source id (graded A-F x 1-6 per the Annex A register), fetch timestamp, raw-capture hash (evidence archive), language, English rendering, extracted entities with ASCOPE role, one or more PMESII-PT variables, AOI ring, L x I score against any watch item it touches, and routing disposition. That is the schema; everything downstream is a view over it.

4. Collection lanes (Costa Rica source map)

Cadences follow the OSINT-036 00b register: continuous, hourly, daily, weekly. Reliability grades are seeded here and maintained in the service’s Annex A source register.

LaneRepresentative sourcesMethodCadencePMESII-PT
Official gazetteLa Gaceta (Imprenta Nacional daily PDF)PDF fetch + OCR + diffDaily 0700P, E, I
LegislationAsamblea Legislativa bill tracker (SIL), committee agendas, votesScrape + change detectionDailyP
Jurisprudence / decreesSCIJ (PGR consolidated law), executive decreesChange detectionDailyP
Environmental permitsSETENA viability resolutions (D1/D2 filings), MINAE resolutionsScrape + keyword filter (Carrillo, Guanacaste, named projects)DailyP, PE
WaterAyA, SENARA, ASADA notices, drought declarationsScrape + watchWeekly + eventI, PE
MunicipalMunicipalidad de Carrillo session acts, permits; Santa Cruz, Liberia as R2 neighborsPDF/portal watchWeeklyP, I
National newsLa Nacion, CRHoy, Teletica, Repretel, Diario Extra, La Republica, Semanario UniversidadRSS + spidersContinuous (15 min poll)all
English / expat pressTico Times, Q Costa RicaRSSHourlyall
Guanacaste localLa Voz de Guanacaste, regional outlets, canton Facebook news pagesRSS + page scrapeHourlyall, R2/R3 weighted
Security / crimeOIJ statistics and press, MSP releases, Poder JudicialScrapeDailyM (see 5.1)
EconomicBCCR (FX, policy rate, EMBI), INEC releases, ICT tourism stats, HaciendaAPI/CSV where offered, else scrapeDailyE
Physical environmentIMN weather, OVSICORI + RSN (seismic/volcanic), CNE alerts and emergency declarationsFeed + scrapeContinuousPE
XCurated account lists: officials, ministries, deputies, journalists, OIJ/MSP, Guanacaste figures; keyword queriesPlatform collector via isolated identityContinuous (per-list poll)P, S, I
TelegramCR news channels, regional channels, monitored public groupsTelethon client, join-and-listenContinuous (push)S, I
Facebook public pagesCommunity pages for Carrillo / Coco / Filadelfia / Sardinal corridor, municipal pagesPage scrape, low cadence2-4x dailyS
Reddit / forumsr/costarica, expat forumsAPI pollDailyS
Sanctions / designationsOFAC SDN delta, EU/UK/UN lists (CR-linked entities)List diffDailyE, P

Platform reality check for Costa Rica: unlike Eastern Europe or MENA, Telegram is a thin lane here. Costa Rican civil society runs on WhatsApp and Facebook. Telegram gets built because it is cheap to run and matters regionally (Nicaragua coverage), but the social-signal weight sits in Facebook public pages, X, and local news comment ecosystems. WhatsApp groups are collected only where lawfully joinable public groups exist; no closed group penetration.

5. PMESII-PT x ASCOPE tagging model

Two independent axes on every item. PMESII-PT answers “what kind of operational-environment change is this”; ASCOPE answers “what concrete civil things does it touch.” The classifier assigns one or more PMESII-PT variables to the document, and the NER stage types each extracted entity into an ASCOPE role. The cross product is the collection grid the analyst queries.

                 A:Areas     S:Structures  C:Capabil.   O:Organiz.   P:People     E:Events
               +------------+------------+------------+------------+------------+------------+
  P Political  | electoral  | assembly,  | governance | parties,   | president, | elections, |
               | districts, | courts,    | capacity,  | ministries,| deputies,  | sessions,  |
               | cantons    | munis      | permits    | TSE        | mayors     | rulings    |
               +------------+------------+------------+------------+------------+------------+
  M Military*  | patrol     | police     | LE reach,  | Fuerza     | ministers, | operations,|
               | zones,     | posts,     | coast      | Publica,   | OIJ leads  | seizures,  |
               | corridors  | ports      | guard cap. | OIJ, SNG   |            | incidents  |
               +------------+------------+------------+------------+------------+------------+
  E Economic   | trade      | banks,     | fiscal     | BCCR,      | investors, | rate moves,|
               | zones,     | markets,   | space, FX  | Hacienda,  | developers | strikes,   |
               | tourism    | hotels     | stability  | chambers   |            | ratings    |
               +------------+------------+------------+------------+------------+------------+
  S Social     | communities| schools,   | social     | unions,    | leaders,   | protests,  |
               | Palmira,   | churches,  | cohesion,  | ASADAs,    | activists, | festivals, |
               | Sardinal   | clinics    | employment | NGOs       | figures    | blockades  |
               +------------+------------+------------+------------+------------+------------+
  I Info       | media      | telecom    | press      | outlets,   | journalists| campaigns, |
               | markets    | infra      | freedom,   | SUTEL      | influencers| disinfo    |
               |            |            | connectiv. |            |            | waves      |
               +------------+------------+------------+------------+------------+------------+
  I Infra      | grids,     | roads      | water/     | AyA, ICE,  | operators  | outages,   |
               | corridors  | (Ruta 21), | power      | SENARA,    |            | closures,  |
               |            | Liberia    | capacity   | MOPT       |            | projects   |
               |            | airport    |            |            |            |            |
               +------------+------------+------------+------------+------------+------------+
  PE Physical  | watersheds,| dams,      | aquifer    | IMN, CNE,  | -          | storms,    |
     Environ.  | dry        | wells      | yield,     | OVSICORI,  |            | quakes,    |
               | corridor   |            | drought    | SINAC      |            | droughts   |
               +------------+------------+------------+------------+------------+------------+
  T Time       | -          | -          | -          | -          | -          | electoral  |
               |            |            |            |            |            | calendar,  |
               |            |            |            |            |            | seasons,   |
               |            |            |            |            |            | deadlines  |
               +------------+------------+------------+------------+------------+------------+

5.1 Costa Rica adaptation of M

Costa Rica abolished its standing army in 1948. The M variable is remapped to the security apparatus and the pressures on it: Fuerza Publica (national police), OIJ (judicial investigation), Servicio Nacional de Guardacostas, DIS (intelligence directorate), and the transnational-crime environment (narcotics transshipment through Guanacaste and Pacific coast corridors, which is the dominant hard-security driver for the client AOI). Border posture with Nicaragua is tracked under M at ring R5.

5.2 T for this client

Time is not a residual bucket here; it drives the brief calendar: a new administration seated May 2026 (first-legislative-session dynamics through 2026), municipal elections February 2028, dry season December-April (water-stress and fire-risk window), rainy season May-November (flood/road risk), Annexation Day July 25 (Guanacaste civic mobilization date), and the client’s own construction and permitting milestones registered as watch items.

6. Scoring, tripwires, and product routing

The watch-item mechanics come straight from the OSINT-030/036 collection maps (section 00b): every watch item carries an observable indicator, a tripwire threshold, an L x I score, a severity tier, and an escalation route. This system makes those rows executable: watch items are rules the scorer evaluates on every enriched item.

L x I bandTierSystem actionClock (OSINT-064)
21-25CriticalImmediate Telegram alert to TL + client channel, phone follow-up per SLAT0, 1h
16-20HighTelegram alert to analyst + TLT0, 1h
11-15ElevatedQueued to top of next daily brief, dashboard flagDaily
6-10ModerateDaily brief inclusionDaily
1-5LowArchive + trend counters onlyWeekly rollup
sequenceDiagram
    autonumber
    participant SRC as Source lanes (N1)
    participant PIPE as Enrich + classify (N2)
    participant SCORE as Scorer (watch rules)
    participant AN as Analyst (QG1/QG2)
    participant BOT as Telegram bot (SYS-006)
    participant CL as Client / TL

    Note over SRC,CL: Flash path (T0) - continuous
    SRC->>PIPE: raw item
    PIPE->>SCORE: tagged item (PMESII/ASCOPE, AOI ring)
    SCORE->>SCORE: evaluate watch rules
    alt L x I >= 16 (tripwire fired)
        SCORE->>AN: draft flash alert + evidence link
        AN->>AN: QG1 source check (minutes)
        AN->>BOT: approve
        BOT->>CL: flash alert (inside 1h clock)
    else below threshold
        SCORE->>SCORE: store, count toward trends
    end

    Note over SRC,CL: Daily brief path - battle rhythm
    SCORE->>PIPE: 0500 CST - brief-builder queries last 24h
    PIPE->>AN: draft brief (OSINT-053 sections, cited items,<br/>watch-item status board, ICD 203 language)
    AN->>AN: QG2 analytic review, edit judgments
    AN->>BOT: release
    BOT->>CL: daily intel brief 0600 CST
    Note over AN: analyst feedback (missed/noisy rules)<br/>tunes classifier and watch thresholds

The daily brief is assembled, never auto-sent: the builder drafts the OSINT-053 structure (BLUF, watch-item status board, new events by PMESII-PT variable, AOI-ring activity, source-grade annex) and the analyst owns the judgments. ICD 203 likelihood and confidence language is inserted by the analyst, not the machine.

6.1 Seed watch items (client-specific, first configuration)

These are the rows that make the system immediately useful to the Parque Tempisque engagement, drawn from what actually moves Guanacaste real-estate risk:

  1. Water: ASADA capacity or concession changes in Palmira/Sardinal/Carrillo; SENARA aquifer studies; drought or rationing declarations (R1-R2, I/PE).
  2. Permitting: SETENA resolutions or appeals touching Carrillo canton projects; INVU or municipal zoning-plan changes (R2, P).
  3. Land tenure: precarismo (organized land invasion) reports in Guanacaste; ZMT (maritime zone, Ley 6043) enforcement or reform (R2-R3, P/S).
  4. Mobility: Ruta 21 blockades or closures; Liberia (LIR) airport disruptions (R2-R3, I).
  5. Security: OIJ-reported crime trend breaks in the Filadelfia-Coco-Sardinal corridor; narco-related incidents on the Guanacaste coast (R2-R3, M).
  6. Labor/social: construction-sector strikes or municipal labor actions; community opposition organizing against coastal development (R2-R3, S).
  7. National: tax or foreign-investment law changes affecting real estate; colon FX regime shifts; new-administration policy toward coastal development and residency/investor rules (R4, P/E).
  8. Physical: seismic events > M5 within 100 km, named-storm tracks, fire season alerts for the dry corridor (R1-R3, PE).

7. Software stack summary

LayerComponent (class, not brand-locked)Node
OrchestrationPrefect (flows, retries, lane schedules)N2 server, N1 worker
ScrapingScrapy spiders (static), Playwright pool (JS), RSS poller, change-detection watchersN1
Platform clientsTelethon (Telegram), per-platform collectors behind isolated identitiesN1
Queue/cacheRedisN2
System of recordPostgreSQL (items, entities, events, watch rules, audit)N2
Vector / searchQdrant + MeilisearchN2
NLP enrichmentfastText lang-id, local NMT es-en, spaCy es NER, mordecai-style geoparser, MinHash dedup, bge-class embedderN2
ClassificationPMESII-PT multi-label + ASCOPE role typing: LLM API at startup, distilled to local model on N3 at growthN2 (N3 growth)
Productsbrief-builder (templated to OSINT-053), alert bot (Telegram, SYS-006 channel discipline)N2
Analyst UIdashboard: search, entity pages, AOI map, watch-item board, timelineN2
OpsDocker Compose per node, git-managed config, Tailscale, restic offsite backup, Grafana + uptime alerts (the system watches itself)all

8. Model integration path (when design is approved)

  1. mbse new system --domain d03 --title "OSINT collection backbone" ... - the platform cell (this hardware + stack), sibling to SYS-008; SYS-008 v2 then consumes it rather than reimplementing collection.
  2. mbse new system --domain d01 --title "Country OSINT monitoring system - Costa Rica" ... - the service-facing deliverable that binds the platform to OSINT-030/036/053 for a named AOI, plus its collection-map mirror in this directory (which retires this sketch).
  3. Seams: d03 provides a collection-backbone artifact consumed by d01; existing ART-daily-brief and ART-threat-alert-stream flows gain this system as upstream. cc01 Costa Rica region package (roadmap #3) supplies ART-region-package configuration (AOI rings, source register seed).
  4. BOM pricing pass on the d03 cell per the SYS-003/004/009/010 convention; BIZ-013 roll-up gains the node capital and proxy/API recurring lines.

9. Assumptions and risks

Assumptions, each with the risk if false:

  • A1: Two-node startup tier carries full CR lane load. If false, growth trigger fires early and N4 capital moves forward.
  • A2: Client accepts cloud LLM API for classification at startup (no contractual data-processing restriction). If false, N3 must be startup capital, not growth.
  • A3: Public .go.cr sources remain scrape-tolerant at polite rates. If false, lanes degrade to manual-assisted collection and cadence slips.
IDRiskLIMitigation
R1Platform countermeasures (X, Facebook) break collectors or burn identities; coverage gap on the social lane43Identity isolation, residential proxies, conservative rates, lane-health alerting, accept degraded cadence over identity loss
R2Legal/ToS exposure: platform terms prohibit scraping; CR Law 8968 governs personal-data processing33Public-data-only doctrine, no closed-group penetration, retention schedule per service annex B, counsel review of platform lanes before client sale
R3La Gaceta OCR quality misses legal notices (image PDFs, layout drift)33Dual pass: OCR plus keyword search on the gazette’s own portal; weekly manual spot check as QG1 sample
R4Spanish-language NLP (NER, classification) underperforms; mis-tagged items suppress alerts34Analyst feedback loop tunes rules; recall-biased tripwires (over-alert, human filters); monthly precision/recall review
R5Single-site dependence: TOC power/ISP outage stalls a continuous-SLA service24Dual WAN (Starlink failover), UPS, offsite backup; growth option: N4 at second site
R6Alert fatigue: noisy watch rules erode client trust in T0 channel34Severity discipline (only >= 16 pages the client), weekly rule-noise review in service-health report

10. Open decisions for discussion

  1. Formalization split: d03 platform + d01 service (recommended, section 8) versus a single d01 system cell. The split matches the SYS-008/OSINT-054 precedent and lets the platform serve future countries.
  2. Startup node count: two boxes (recommended) versus three if A2 fails or local inference is wanted on day one.
  3. X acquisition method: paid API tier versus scrape-only via managed identities: cost certainty versus fragility (R1).
  4. Brief delivery channel: Telegram-only at startup (SYS-006 discipline) versus adding formatted PDF/email for the client principal.

END OF DESIGN SKETCH