Epic: one Eco website replacing DiscordLink's read-only features (DLT), jobs-tracker merged in #37
Labels
No labels
burndown-2026-06
burndown-2026-08
headless
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/eco-app#37
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Thesis
Kai wants a single Eco website that owns every read-only server surface for Sirens, so DiscordLink can be stripped down to the one thing it does well: chat sync. In Kai's framing - read-only info does not belong in Discord, websites are a better platform for it, and DiscordLink's non-chat features are "poorly maintained fluff." This is the "Kai version of DLT that actually works" (DLT here = DiscordLink's read-only display/tooling feature set, the server-info embeds it posts into Discord).
Two supporting reasons:
End state
What already exists (reuse, do not rebuild)
The eco-mcp-app data layer already pulls much of the DiscordLink parity set from Eco's
/info, admin/datasets, and the exporters: server status, economy, world map, milestones, species, government + elections, laws, climate. Jobs data comes from the EcoJobsTracker mod endpoint. So the epic is mostly surfacing this on the website coherently and closing the parity gaps, not building the pipes from scratch.Breakdown (candidate child issues)
Non-goals
Related
Trade & store logistics wave filed (children of this epic)
Kai is focused on trade and store logistics and on meeting-then-exceeding DiscordLink's trade surface without needing a server restart for a couple of hours. That constraint drove the decomposition below. DiscordLink reads live store shelves in-process (a new C# plugin, which means a restart), but the
CurrencyTradeexporter already ships every individual trade (#6), so nearly the whole surface is buildable from already-exported data with zero reset. The one live-shelf piece is isolated into a single reset-gated issue built offline against a C# shell harness, so nothing else waits on the clock.DiscordLink trade/store surface being matched:
Trades <name>lookup,WatchTradeFeed/WatchTradeDisplaywatchers,Currency/Currenciesmoney-supply. Exceeded via store-owner (a DiscordLink gap), price trend + fair-value, arbitrage and supply-gap logistics, and website + MCP delivery instead of Discord DMs (this epic's own thesis).Foundation - #6 trades ledger (the normalized
CurrencyTrademodel everything below consumes).Children filed:
fair_price.py). No reset./traderoute, the product surface tying it together. No reset.Dependency spine: #6 is the keystone. #49/#50/#52/#53 build on it. #51 consumes #49/#50. #54 consumes all data planes. #55 is independent to build. Dispatched as sibling headless runs.
The product decision in this epic is settled. eco-app is the single read-only website, the rich Discord worker covers the replacement commands, and DiscordLink keeps chat sync.
The only remaining exit path is operational: #144 must finish work-party parity and updated test-guild verification, then eco-ops#18 and the matching DiscordLink display changes can leave chat sync plus the linked-account role. No new product consultation is required on this epic itself.
Reclassifying the epic from
consulttointeractiveso its label matches the remaining live checkpoint.