Content
# RESILAND Intelligence
🌐 **Live at [resilland.com](https://resilland.com)**
**AI-powered decision support for the World Bank's $256M RESILAND CA+ landscape-restoration program — Claude Opus 4.7 turns months of consultant analysis into minutes, live in production.**
> Production dark theme + 4-language UI (EN · TR · RU · UZ) · 3D globe hero + interactive satellite map across six countries · Opus 4.7 generates Phase-4-style feasibility reports in 2–3 minutes (with prompt caching) · Drop a field photo for Opus Vision analysis, or a KMZ/KML/GeoJSON polygon for geospatial scoring · MCP server + admin panel — clone, run `python scripts/setup.py`, plug in your own API keys.
> **A note on naming.** The World Bank program is **RESILAND CA+**. Our production domain is **resilland.com** (the `.com` we could acquire for the build). Internal code identifiers use the shorter `resiland` prefix that pre-dates the domain. Same project, three spellings, all intentional.
[](https://claude.com/claude-code)
[](https://claude.com)
[](https://cerebralvalley.ai/e/built-with-4-7-hackathon)
[](LICENSE)
> 📋 **Roadmap & Channels:** [ROADMAP.md](./ROADMAP.md) — what's live today (web + MCP + WhatsApp bot at `+90 535 374 99 71`), what's coming in Q2/Q3 2026 (5-country expansion · Blender 3D nursery design · disease/product CV · researcher no-code sub-agent builder · 12 queued open datasets), and the long-term moonshots.
>
> 🪧 **Live kanban board:** [github.com/users/ilhankilic/projects/2](https://github.com/users/ilhankilic/projects/2) — the same 25 roadmap items as a public GitHub Projects board. Switch the layout to **Board** and group by **Roadmap Phase** for the four-column kanban view (Done · Q2 2026 · Q3-Q4 2026 · Moonshot).
---
## Demo video
[](https://www.youtube.com/watch?v=S-0B2MfGans)
> ▶ **[Watch on YouTube — 3:15](https://www.youtube.com/watch?v=S-0B2MfGans)** · İlhan Kılıç (retired engineer, Türkiye) opens the build with consultant **İsmail Belen** (Turkish forestry expert, decades of arid-land restoration in Central Asia) and **Dr. Hülya Hernandez** — six days of Opus 4.7 work on the World Bank's $256 M RESILAND CA+ program. Cameras on the live site: globe hero → satellite map → Opus 4.7 feasibility report streaming → MCP install snippet.
---
## Screenshots

### Landing — marketing surface
| | |
|---|---|
|  |  |
| **Same data, different lens** — MiniTerrain 3D topo view (Sentinel-2, NDVI time series, cadastral polygons, admin boundaries on one canvas) | **A Phase 4 report, drafted by Opus 4.7** — Fergana Valley / Namangan Oblast feasibility card with inline citations |
|  |  |
| **Speak to your landscape** + **Your assistant, wherever you work** — Web Speech → Haiku 4.5 / Opus 4.7 and a live MCP install snippet in one frame | **Clone it. Plug your keys in. Ship.** — CTA + full footer with Slack / Discord / WhatsApp / LinkedIn community links |
|  | |
| **Shaped with the people doing the work** — consultant testimonials alongside the `pip install mcp-resilland` + `claude mcp add` flow | |
### /app — live map
| | |
|---|---|
|  |  |
| **World scale** — 20.5 M ha under management across six countries, RESILAND pilot regions highlighted in emerald + violet | **Parcel detail** — ESRI satellite imagery, Map Layers side panel (base maps, weather, fires, vegetation) |
|  | |
| **Layer-aware stats + controls** — Default / Mine / Org tabs, per-layer opacity, multi-tenant sharing (sprint H) | |
### Analyze dashboard
| | |
|---|---|
|  |  |
| **Verdict overview** — Opus 4.7 suitability score 74/100, confidence = high, top species, ecological highlights, risks, next steps, pipeline sidebar | **Environment & NDVI** — temperature monthly series, precipitation SPI-3, drought index, NDVI 5-year trend — all sourced from ERA5 + CHIRPS + Sentinel-2 |
### /stats — live data intelligence
| | |
|---|---|
|  |  |
| **KPIs** — 125 documents, 757 chunks, 413 avg tokens, 5,925 Sentinel scenes, 20.5 M ha, 3,566 parcels — all live from Postgres every 30 s | **Deeper view** — chunk-size distribution (Voyage-3), country-coverage bar (UZB 100%), live ticker, and the LIVE / PLACEHOLDER / TILE-API disclosure panel |
### Admin console
| | |
|---|---|
|  |  |
| **First-run setup wizard** — Account → AI Providers → Maps → Satellite → Default Layers, credentials Fernet-encrypted in Postgres, nothing written to `.env` | **Organizations** — multi-tenant workspaces, role-based invitations (owner / admin / user), revocable tokens |
|  | |
| **Knowledge Ingestion** — drag-drop DOCX / PDF / PPTX / MD / GeoJSON or paste a GitHub repo URL; Opus 4.7 classifies kind + relevance + tags, Voyage-3 embeds into pgvector | |
### /roadmap — "What's Next" (7 Three.js dioramas)
| | |
|---|---|
|  |  |
| **01 Simulate · Q2 2026** — 36 saplings grow in a parcel over a 20-year timeline, sun arcs overhead, carbon ring fills. **02 Design · Q2 2026** — 4-zone nursery auto-design with irrigation lanes and floating octahedron markers | **03 Measure · Q3 2026** — Sentinel-2 orbits overhead, scan cone reveals bounding boxes across 40 trees. **04 Measure · Q3 2026** — drone mows lawn pattern over crop-row field while the satellite writes weekly deltas |
|  |  |
| **05 Report · Q4 2026** — 8 floating document planes with header bars and connector lines, progress rings fill at 84%. **06 Community · Q4 2026** — 14 pins on a grid-map, photo cards hover overhead, lines rise to a central pool sphere | **07 Intelligence · Q1 2027** — holographic leaf with 5 pulsing disease spots, scan ring + 8 orbiting octahedron readouts · below: **BYO-key pricing card** ($10 ≈ 1,000 Opus 4.7 scans, transparent cost math) |
> Screenshots reflect the state as of **2026-04-25** on [resilland.com](https://resilland.com). Files live in [`assets/screenshots/`](assets/screenshots/).
## What
An AI-powered decision-support platform that turns months of manual landscape-restoration analysis into minutes. Built in six days for the [Cerebral Valley "Built with Opus 4.7" hackathon](https://cerebralvalley.ai/e/built-with-4-7-hackathon) as a working prototype for the **World Bank's RESILAND CA+ program** — a $256M landscape-restoration initiative covering **Kazakhstan, Kyrgyzstan, Tajikistan, Uzbekistan ($153M) and Turkmenistan** — plus **Türkiye** as a partner geography drawing on decades of OGM / TEMA reforestation expertise.
Designed to be **clone-and-go**: nothing sensitive lives in the repo. Run the interactive `scripts/setup.py` wizard, answer a few questions, `docker compose up`, and you are live — locally on your laptop or on a Linux VPS behind nginx.
## Why
Central Asia is the most under-represented region in AI-for-climate. RESILAND CA+ manages tens of millions of hectares of degraded forest across five countries, and decisions rely on month-long manual consultant reports. Every day of delay means more desertification, mudflows and lost ecosystem services. Türkiye's decades of dryland afforestation experience is directly transferable — this platform connects those dots.
What Opus 4.7 does here that no prior model class could:
- **Teacher model** — learns from nine World Bank Phase 4 feasibility reports, drafts new ones in 2–3 minutes (with prompt caching) instead of months of consultant work
- **Multi-modal vision** — reads field photos + Sentinel-2 imagery + multi-page PDFs in the same request, cites passages by page
- **Localized at the UI level** — full English / Turkish / Russian / Uzbek interface; report bodies are Sonnet-translated on demand and clearly labeled as machine translation
- **Adaptive routing** — Haiku 4.5 handles ~90 % of conversational queries, Sonnet 4.6 drives per-section report generation with prompt caching, Opus 4.7 escalates for deep cross-document reasoning and Vision
## Who it is for
- **World Bank Task Team Leaders** overseeing RESILAND projects
- **National forestry agencies** in the five CA countries (Uzbekistan State Forestry Agency, etc.)
- **Field consultants** running Phase 4-6 assessments — including the team behind this project
- **Community cooperatives** implementing on-the-ground restoration
## Geographic scope
| Code | Country | Role |
|------|---------|------|
| UZB | Uzbekistan | Primary pilot — 3,563 cadastral parcels + nine Phase 4 reports |
| KAZ | Kazakhstan | RESILAND CA+ partner ($6M allocation) |
| KGZ | Kyrgyzstan | RESILAND CA+ partner ($52M allocation) |
| TJK | Tajikistan | RESILAND CA+ partner ($45M allocation) |
| TKM | Turkmenistan | RESILAND CA+ partner |
| TUR | Türkiye | Partner geography — OGM / TEMA afforestation expertise |
Every spatial table carries a `country` column so the same platform serves all six geographies; Sentinel-2, GADM boundaries and climate data cover the region uniformly.
## Features
### Landing + public
- **3D globe hero** with procedural NDVI shader + atmospheric glow (Three.js)
- **/stats** — live data-intelligence dashboard: documents, vector chunks, NDVI rasters, parcels, area, sources — queried from production Postgres every 30 s, with transparent LIVE / PLACEHOLDER / TILE-API badges on every panel
- **Landing reports modal** — nav / CTA / footer Reports buttons open a modal listing the user's saved reports instead of navigating away; anonymous visitors see a sign-in prompt
- **Voice + mascot** — Web Speech API + Haiku 4.5 assistant that can navigate pages and trigger the analyze pipeline by voice
### Analysis workflow
- **Draw-then-analyze** — draw a polygon on the map, pick a model (Opus 4.7 / Sonnet 4.6), get a streaming dashboard: verdict card + species recommendations + NDVI trend + nearest nurseries + climate + 9 section markdowns
- **Cached reopen** — click any past analysis from the Reports drawer or `/reports?tab=analyses` and the full dashboard rehydrates from cache (no Opus re-run). Old reports that predate the cached-dashboard format gracefully fall back to 9 per-section markdown cards
- **Upload pipeline** — drop a photo / KMZ / KML / GeoJSON / GeoTIFF; parse + Vision + reverse-geocode + feasibility report in one flow
- **Background translate** — translation runs in an asyncio background task so closing the tab does not lose work; UI polls until the sibling report flips to `final`
### Report center
- **Multi-lingual siblings** — one analysis_group shares reports across EN / TR / RU / UZ with the same scope and data
- **Per-section versioning** — re-analyze any of the nine sections (executive_summary, ndvi_analysis, …) without touching the rest
- **Share links** — 7-day signed URLs, public read-only with PDF download
- **PDF export** — server-side weasyprint render with MRV-ready metadata
- **Oblast roll-ups** — aggregate dozens of parcel analyses into a programme-level brief
### Admin + ops
- **Multi-tenant** — Organizations + invitations + per-org layer sharing via M2M (migration 0013)
- **Policy engine** — personal key → operator-shared key + active demo allowance → HTTP 402, explicit cascade documented in `/admin/providers`
- **10 k-token / day demo allowance** — users without keys can try the platform for 30 days on the operator's shared key
- **Knowledge ingestion** — `/admin/ingest` takes DOCX / PDF / PPTX / MD / HTML / GeoJSON or a GitHub repo URL, pipes it through parse → Opus 4.7 metadata (kind / relevance / tags / summary) → semantic splitter → Voyage-3 embeddings → pgvector, all with per-stage audit trail
- **CMS** — help centre + blog + privacy policies, all TipTap-editable, locale-aware
- **Audit log** — every mutation (role changes, provider edits, ingestion runs, prompt updates, report creation) appended to `audit_logs` with actor + diff + target + timestamp; MRV-ready
- **MCP server** — `mcp-resilland` on [PyPI](https://pypi.org/project/mcp-resilland/) · source lives both in this mono-repo at [`mcp/`](mcp/) and in its own distribution repo [github.com/ilhankilic/mcp-resilland](https://github.com/ilhankilic/mcp-resilland) (PyPI release pipeline). 16 tools, 8 resources, 3 prompts covering parcels, nurseries, analyze_area, feasibility reports, translate, Report Center (list/get/translate/share/PDF), and live platform stats. Usable inside Claude Desktop / Cursor / Windsurf.
## Bring your own keys
Two modes, switchable per provider:
- **Self-host (BYO keys)** — each user pastes their own key on `/settings/api-keys`; the Policy Engine routes requests to that key.
- **Operator mode** — an operator flips a provider to `is_operator_shared` in `/admin/providers`. Users can then run on that key under a *demo allowance* (default: 30 days, 10 k tokens / 100 requests per day, issued from `/admin/demo-keys`). Hitting the cap returns HTTP 402 with a link back to settings.
Cascade: personal key → operator-shared + active demo → 402.
## Quick start
```bash
git clone https://github.com/<YOUR_GITHUB_USER>/resilland-intelligence.git
cd resilland-intelligence
# Interactive wizard — writes .env, walks Firebase/API-keys/passwords:
python scripts/setup.py
# Spin up the stack
docker compose up -d
docker compose exec backend alembic upgrade head
# First sign-in becomes superadmin:
open http://localhost:3000
```
Production deployment (Linux VPS + nginx + certbot): see [DEPLOY.md](DEPLOY.md) or run `python scripts/setup.py --prod` for production defaults.
| Service | Local port |
|---------|------------|
| Next.js frontend | 3000 |
| FastAPI backend | 8000 |
| PostgreSQL 16 + PostGIS 3.4 | 5432 |
| Redis 7 | 6379 |
| MinIO API / console | 9000 / 9001 |
| pgAdmin (`--profile tools`) | 5050 |
## Tech stack
| Layer | Technology |
|-------|-----------|
| Frontend | Next.js 14 (app router) + React 18 + TypeScript + Tailwind + Three.js + react-leaflet + TipTap |
| Backend | FastAPI (Python 3.11) + SQLAlchemy 2.0 async + asyncpg + GeoAlchemy2 + Alembic |
| Database | PostgreSQL 16 + PostGIS 3.4 + pgvector |
| Cache / queue | Redis 7 |
| Object store | MinIO (S3-compat) |
| Auth | Firebase Auth (Google + email/password) |
| AI | Anthropic Claude Opus 4.7 · Sonnet 4.6 · Haiku 4.5 |
| Embeddings | Voyage-3 (Voyage AI) |
| Satellite | Sentinel-2 via STAC · Google Earth Engine · SoilGrids · Open-Meteo · ESA WorldCover |
| MCP | FastMCP 3.x — `mcp-resilland` on [PyPI](https://pypi.org/project/mcp-resilland/) / [mirror repo](https://github.com/ilhankilic/mcp-resilland) |
| Deployment | Docker Compose + nginx + Let's Encrypt |
## Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ Next.js frontend — landing + /app map + /reports + /stats │
│ 3D globe · draw polygon · streaming dashboard · TipTap CMS │
└────────────────────────────┬────────────────────────────────┘
│ HTTPS + SSE
┌─────────────────▼─────────────────┐
│ FastAPI backend │
│ /parcels /ai/analyze (stream) │
│ /reports /agent/internal /mcp │
│ Policy engine · audit log · RQ │
└──┬──────┬──────────────┬───────┬──┘
│ │ │ │
┌──────────▼─┐ ┌─▼────────┐ ┌──▼───┐ ┌▼──────────┐
│ Postgres 16│ │ Anthropic│ │MinIO │ │ Redis │
│ + PostGIS │ │ Opus / │ │(S3) │ │ + RQ │
│ + pgvector │ │ Sonnet / │ │uploads│ │ cache │
│ 25 tables │ │ Haiku │ │reports│ │ sessions │
└────────────┘ └──────────┘ └──────┘ └───────────┘
```
All backend reads are read-only against `/data` (bind-mounted government datasets); mutations only touch Postgres + MinIO.
## Data pipeline & ingestion
RESILAND Intelligence is only as good as the data under it. Here's what
the stack has processed as of **2026-04-25** — all numbers are live and
visible on the [`/stats`](https://resilland.com/stats) dashboard.
### Current ingestion footprint
| Layer | Count | Notes |
|------:|:------|:------|
| **Cadastral parcels** | **3,563** | Public Uzbek cadastral shapefile → PostGIS (EPSG:4326), every parcel has geometry + centroid + raw DBF attrs |
| **Total area under management** | **20,507,131 ha** | Sum of `Parcel.area_hectares` across the 3,563 rows |
| **Admin boundaries** | **229** | GADM 4.1, Uzbekistan oblast + tuman level (Kazakhstan/Kyrgyzstan/Tajikistan/Turkmenistan/Türkiye boundaries queued — see roadmap) |
| **Nurseries** | **11** | RESILAND-9 + 2 auxiliary, GPS-point rows with category + source |
| **NDVI snapshots** | **5,921** | Sentinel-2 L2A monthly medians, per-parcel, multi-scale buffers (500 m / 2 km / 5 km / 10 km) |
| **Tree species catalog** | **64** | Curated Central Asia + Türkiye dryland restoration candidates |
| **Species enrichments** | **65** | Opus 4.7 cross-reference writes — disease, pest, cultivar, silviculture, ecology, 4 languages |
| **Documents (RAG corpus)** | **125** | Broken down below |
| **Vector chunks** | **757** | All embedded (Voyage-3, 1024 dims) |
| **Total tokens in pgvector** | **312,858** | Avg 413 tokens/chunk with 50-token overlap |
| **Feasibility reports (final)** | **13** | 9 World Bank Phase 4 originals + 4 Opus-generated drafts |
| **Report sections (versioned)** | **99** | Each section can be re-analysed without touching the other eight |
| **Layer features** | **3,843** | Admin boundaries + parcels + nurseries + uploads, each visible on the map |
| **User uploads** | **5** | Photo / KMZ / KML / GeoTIFF; Vision analysis + reverse-geocode + auto-feasibility |
| **Audit log events** | **289** | Every mutation traced (who / what / when / diff) |
### Documents broken down by kind
| Kind | Count | What it contains |
|------|------:|:-----------------|
| `regional_data` | **75** | Country-level climate indicators (ERA5, CHIRPS, SPI, FWI, Hansen GFC, WRI water stress, MODIS dust, soil moisture, WorldCover) |
| `species_profile` | **20** | One document per tree species — climate profile, tolerances, silviculture |
| `research_brief` | **10** | Academic paper summaries (Stanturf 2020, Matsui 2019, Sutton 2026, Dubovyk 2013/2017, Meroni 2017 BACI) |
| `phase4_report` | **9** | World Bank RESILAND CA+ Phase 4 feasibility reports (Dargom, Kitob, Pastdargom, Şehrisabz, Termiz, Uzun, Shortan, O'rtaorol, Nine-Nurseries summary) |
| `other` | **8** | Uncategorised — tagged for reclassification |
| `phase5_report` | **1** | Qoravultepa detailed design (post-Phase 4) |
| `nursery_handbook` | **1** | Turkish OGM *Fidan Yetiştiriciliği* handbook |
| `technical_disposition` | **1** | MRV protocol draft |
### Ingestion pipeline
```
Raw source (PDF / DOCX / shapefile / CSV / KMZ / TSV)
↓
Parse + clean (PyMuPDF · python-docx · pyshp · fastkml)
↓
Opus 4.7 metadata pass (kind · relevance · tags · summary · language)
↓
Semantic splitter (50-token overlap; 400-600 target)
↓
Voyage-3 embedding (1024-dim dense vectors)
↓
PostgreSQL 16 + pgvector (IVFFlat index, cosine distance)
↓
Retrieval: top-K cosine + similarity score injected into prompts
```
Every ingestion step appends an `audit_logs` row so the lineage is
queryable later — critical for the MRV (Monitoring-Reporting-Verification)
use case where World Bank task team leaders must cite provenance.
### Planned ingestion (post-submit roadmap)
Next wave targets the remaining five RESILAND CA+ partner geographies
and roughly **10×** the current RAG corpus. Concrete targets:
| Layer | Today | Target Q3 2026 | Why |
|------:|------:|---------------:|:----|
| Admin boundaries | 229 (UZB only) | **~2,100** (all 6 countries) | GADM 4.1 covers KAZ/KGZ/TJK/TKM/TUR at district level; loading is a one-off `scripts/import_boundaries.py` run |
| Cadastral parcels | 3,563 (UZB) | **~60,000** (UZB + KAZ + KGZ pilot districts) | Kazakhstan State Land Committee + Kyrgyz Forest Service sharing agreements in draft |
| NDVI snapshots | 5,921 | **~200,000** | Expand from UZB-only pilot to Central Asia + Türkiye at monthly cadence |
| Documents | 125 | **~1,500** | FAO GAEZ crop suitability, UN-REDD+ national submissions, Turkish OGM silviculture library (~1 GB PDFs queued), academic literature pipeline via OpenAlex |
| Vector chunks | 757 | **~45,000** | Follows directly from 10× document count + slightly shorter chunks for newer handbooks |
| Species catalog | 64 | **~250** | Add shrubs + saxaul-belt halophytes + post-fire pioneers + Türkiye Mediterranean species |
| Species enrichments | 65 | **~4,000** | 250 species × 16 (country × use-case) Opus cross-refs |
| Nurseries | 11 | **~200** | Full Uzbek agency inventory + Turkmen / Kyrgyz / Kazakh partners |
**Gate:** we ship the submission with what judges can verify is live —
the 10× targets above need partner data agreements + budget for the
ingestion compute, not engineering work. The pipeline scales linearly;
no rewrites needed.
## Sprint timeline
**Day 0 — 2026-04-21** · Repo, plan, domain, decision log.
**Day 1 — 2026-04-22** · Sprint 1 + Auth: Docker stack, PostGIS, 5 domain + 6 auth/admin tables, FastAPI, Next.js dark-theme map, Firebase auth, admin panel, encrypted provider vault, 5-step setup wizard.
**Day 2 — 2026-04-22** · Sprint 2 + 3: pgvector + Phase 4 RAG ingestion, SpatialContextBuilder, Opus 4.7 feasibility generator with prompt caching, Vision upload pipeline, EN/TR/RU/UZ i18n, voice (Web Speech), MRV-ready PDF, country column on every spatial table.
**Day 3 — 2026-04-23** · Sprint G + H: draw + measure, area analysis streaming, mascot page-awareness, organisations + invitations + layer sharing (0013), 3D viewer gate, API-key policy engine, demo allowance, MCP settings page, policy_pages CMS, public-repo flip prep.
**Day 4 — 2026-04-24** · Sprint R + MA: Report Center (R-01..R-23 + S1..S4 + B1..B4), in-map Reports drawer + detail modal, SSE streaming, Managed Agent Phase A+B bridges (P2 area pipeline + P3 translator), deploy hook.
**Day 5 — 2026-04-25** · Landing: 3D globe hero, /stats data-intelligence dashboard, landing reports modal, analyses cached reopen, social links, security sweep, README polish.
**Day 6 — 2026-04-26** · Demo video + submission + repo flip to public.
## Data sources
- **Sentinel-2 L2A** — 10 m optical imagery, 5-day revisit (STAC + GEE)
- **GADM 4.1** — administrative boundaries for all six countries
- **OpenStreetMap** — base tiles
- **Open-Meteo** — weather forecasts
- **SoilGrids 250 m** — soil properties
- **ESA WorldCover 10 m** — land-cover classification
- **Mapbox Terrain-RGB** — elevation / DEM for 3D (BYO token)
- **Uzbek cadastral shapefile** — public forest parcels registry (licensed locally, not redistributed)
- **Internal consulting datasets** — used locally for analysis, **never committed**
## Acknowledgements
- **İsmail Belen** — international forestry expert (40+ years across Türkiye, Central Asia and UN/FAO programmes). Primary domain partner; platform design shaped by his long-running work on RESILAND CA+ feasibility assessments and ORMEL / TEMA reforestation programmes in Türkiye.
- **World Bank Korea Green Growth Trust Fund** — primary program funder for RESILAND CA+.
- **Anthropic × Cerebral Valley** — hackathon organisers, Opus 4.7 access, API credits.
- **Claude Code** — paired through every sprint; dev practice, diffs and docs are a joint effort (see commit log + CLAUDE.md).
## Contributing & security
- [CONTRIBUTING.md](CONTRIBUTING.md) — branch + PR conventions, code style, migration rules
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — community expectations
- [SECURITY.md](SECURITY.md) — vulnerability reporting (please do **not** open a public issue for security findings)
- [DEPLOY.md](DEPLOY.md) — self-host deployment guide (nginx + certbot + Docker Compose)
## Roadmap — coming soon
These features are built and tested; they are scheduled for the first
post-hackathon release rather than the 2026-04-26 demo so the submission
surface stays small and stable.
### MCP server
**Already shipping in v0.2** (post-submission PyPI upload):
- `get_stats_overview` / `get_stats_summary` — live KPI dashboard feed
- `list_reports` / `get_report` — Report Center access via MCP
- `translate_report` — background translation fan-out; poll from MCP
- `create_report_share_link` / `get_report_pdf_url` — share + PDF in-line
- New prompt `report_center_workflow` — one-shot generate → translate → share
**Queued for v0.3 (sprint M0, ~June 2026):**
- Upload pipeline tools — start + poll image / KMZ / KML / GeoTIFF Vision analysis over MCP
- `reanalyze_section(report_id, section_key, model, instructions)` — regenerate a single section without touching the rest
- `aggregate_oblast(oblast_code, language, model)` — programme-level roll-up
- Admin oversight tools — `admin_list_reports`, `admin_audit_log` (operator-only scopes)
- Resource expansion — `resiland://oblasts`, `resiland://species/enriched/{code}`
### Managed Agent pipeline
**Phase A + B shipped** (flag-gated in production): P2 area pipeline and
P3 report translator. Call sites routed through Anthropic Managed Agents
when `USE_AGENT_PIPELINE=true` with HMAC-signed service tokens, cost
guardrails, and full audit trail in `agent_invocations`.
**Queued for sprint post-submit:** P4 (MCP Companion), P5 (Upload
Triager), P6 (Chat Companion), P7 (Admin Ops).
### Stats trend data
Sparkline + delta percentages on `/stats` are procedural placeholders
today (flagged with the ⚠ **PLACEHOLDER** badge on every panel). Real
historical trend data will stream from a `stats_snapshots` table
populated by a nightly RQ job — planned for June 2026.
### Translate worker
`/api/reports/{id}/translate?background=true` currently runs inside an
`asyncio.create_task`. Scheduled fix: move to a dedicated RQ queue
worker container with exponential backoff on Sonnet rate limits, so a
translate fan-out survives a full backend restart.
### Policy CMS
`/admin/policy` body is still raw Markdown. TipTap WYSIWYG editor (same
one used on the Help + Blog CMS) is queued as a `body_markdown →
body_html` migration + editor swap.
---
## License
Apache 2.0 — see [LICENSE](LICENSE).
> *Built in six days with Claude Code during the April 2026 "Built with Opus 4.7" hackathon. No pre-hackathon code was carried over.*
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
markitdown
Python tool for converting files and office documents to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.