Naming.
eco-jobs-trackeris the canonical name (repo, subdomaineco-jobs-tracker.coilysiren.me, modEcoJobsTracker). Deploy internals still carry the oldeco-spec-trackername (k8s namespace, Python package, image, SSM key, Sentry project). Renaming those is a separate, riskier surgery (k8s teardown + Sentry break). Do not changecoily.yaml'sname- it cascades into every k8s resource and the image tag at deploy.
Read-only "who can make what" board for an Eco [1] server in 300 lines of FastAPI. Lists every player, profession, learned specialty, with live active / total counts.
Paired with a small C# Eco mod that exposes GET /api/v1/skills: the mod is the source of truth, this app is the view. Today the app reads mock data (UPSTREAM_URL unset); point it at the shell harness on :5100 or the real mod and it switches over.
Live at eco-jobs-tracker.coilysiren.me.
Two processes:
- FastAPI app (
src/eco_spec_tracker/main.py) - Jinja2 + HTMX + Tailwind CDN. Serves/,/professions,/specialties,/players, HTMX partials under/partials/*, JSON mirror under/api/v1/*. The live server-status card imports directly from siblingeco-mcp-app[2]. - C# Eco mod (
mod/src/) - standard ModKit [3] UserCode mod, registersGET /api/v1/skills. Themod/shell/project is an ASP.NET Core harness on:5100with canned data so you can iterate without booting Eco.
upstream.py calls /api/v1/skills when UPSTREAM_URL is set, falls back to mock data otherwise.
make build-native
make run-native # http://localhost:4100 with autoreloadPlus the C# shell harness in a second terminal:
make run-shell # :5100
UPSTREAM_URL=http://localhost:5100/api/v1/skills make run-nativemake testSmoke suite under tests/test_smoke.py: every page, every /api/v1/*, /partials/eco-card with upstream stubbed via respx, parser fed a mod-shaped fixture.
make build-mod # mod/src/bin/Release/net10.0/EcoJobsTracker.dllDrops into an Eco server's Mods/EcoJobsTracker/ directory.
See mod/modio.md for the canonical listing copy + zip shape. Bump <Version> in mod/src/EcoJobsTracker.csproj before each upload.
Follows the coilysiren/backend template [4]. Target: eco-jobs-tracker.coilysiren.me.
MIT. Eco is a trademark of Strange Loop Games [5]; unofficial fan tool, not affiliated.
- https://play.eco/
- https://github.com/coilyco-flight-deck/eco-mcp-app
- https://github.com/StrangeLoopGames/EcoModKit
- https://github.com/coilyco-flight-deck/backend
- https://www.strangeloopgames.com/
- AGENTS.md - agent-facing operating rules.
- docs/FEATURES.md - inventory of what ships today.
- .coily/coily.yaml - allowlisted commands.
Cross-reference convention from coilysiren/agentic-os#59.