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.
Train-in-Silence
The first Task-Aware MCP server and automated VRAM calculator for LLM...
stacklit
108,000 lines of code. 4,000 tokens of index. One command makes any repo...
AppClaw
AI-powered mobile automation agent — describe what you want in plain...