Complete Economic Observatory MVP (ADAPTIVE-WP-0002)

Add file-based Bubble, Stripe, and OpenRouter importers; usage attribution,
cost allocation, pricing simulator, credit wallets, and recommendations in the
dashboard API. Document whynot-design UI workflow and archive the finished
workplan with all ten tasks marked done.
This commit is contained in:
2026-06-22 23:23:31 +02:00
parent 04ee6d2421
commit 0a38def5a5
26 changed files with 871 additions and 111 deletions

View File

@@ -4,11 +4,13 @@ Project-specific material for the Coulomb Social Economic Observatory MVP.
Generic adaptive-pricing framework concepts belong in the repository root
(`INTENT.md`, `docs/`, `research/`, `registry/`). Execution tracking:
`workplans/ADAPTIVE-WP-0002-economic-observatory-mvp.md`.
`workplans/archived/260622-ADAPTIVE-WP-0002-economic-observatory-mvp.md`
(finished 2026-06-22).
Liquidity and cost requirements: `REQUIREMENTS.md`.
Liquidity and cost requirements: `REQUIREMENTS.md`.
UI workflow (whynot-design): `docs/UI-WORKFLOW.md`.
## Sprint 1 — Economic Foundations
## Economic Observatory
The `observatory/` package reads **expense and payment record ledgers** and
computes all totals programmatically (`ledger.py``economics.py`).
@@ -21,6 +23,10 @@ computes all totals programmatically (`ledger.py` → `economics.py`).
| Product model | `data/product.json` |
| Pricing models | `data/pricing-models.json` |
| Membership | `data/membership.json` |
| AI usage | `data/usage_records.json` |
| Credit wallets | `data/credit_wallets.json` |
| Value range hypotheses | `data/value_range.json` |
| Market signals | `data/market_signals.json` |
**Current reality:** infrastructure from January 2025 — domains **€6.75/mo**,
coulombcore hosting **€13.99/mo** (from Jan 2025), railiance01 hosting
@@ -42,9 +48,16 @@ make serve
Open **http://127.0.0.1:8765/** for the Economic Observatory UI (served from
`ui/`, data via `/api/dashboard`). The UI consumes **whynot-design** (Layer 1 CSS
+ Layer 2 `<wn-*>` components) from `ui/vendor/whynot-design/` — re-run the sync
script after bumping the pinned ref in `.whynot-design-ref`. Claude atelier mock
(reference only): https://claude.ai/design/p/fb2eef8c-c1fc-4c75-bff4-3782552e5511
+ Layer 2 `<wn-*>` components) from `ui/vendor/whynot-design/`. See
`docs/UI-WORKFLOW.md` for the implementation process.
Manual ledgers will be replaced by Bubble (Sprint 2), Stripe (Sprint 3), and
OpenRouter (Sprint 4) importers.
### Importers (file-based sync)
```bash
python3 -m observatory.importers.bubble --input data/imports/bubble-export.sample.json
python3 -m observatory.importers.stripe --input data/imports/stripe-export.sample.json
python3 -m observatory.importers.openrouter --input data/imports/openrouter-export.sample.json
```
Sample exports live under `data/imports/`. Live API sync can replace these
file-based importers in a follow-on workplan.