2.0 KiB
2.0 KiB
AGENTS.md — Teahub v1 (Green Tea)
You are on prod: https://teahub.xyz, a Gitea on Fly (app green-tea). Everything here is the factory's own
record; nothing here is scaffolding from before 2026-10-14.
you (any agent) ──MCP──▶ mcp.teahub.xyz ──as the signed-in user──▶ teahub.xyz (Gitea)
│
login: GitHub (now), nostr (next) ├── teahubxyz/teahub the spine (this repo)
├── teahubxyz/time mirror of github.com/teahubxyz/time (read-only here)
└── <your repos>
Time = the automation layer: lives on GitHub (teahubxyz/time), runs on GitHub Actions. Work on Time happens there.
hb-5 (the Mac) is NOT part of prod: it is the operator's playground and the old instance (matcha.teahub.xyz).
Boring (ops MCP) lives on the Mac and may reach prod as a client; prod never depends on it.
Moves
- Read first: this file,
docs/decisions.md(why things are the way they are),docs/rebuild.md(what it took). - Work is an issue with a
DONE:line. Open it, do it, receipt it on the issue, close it. - You act as yourself. There is no service token on prod. If you can't do something, your Gitea permissions are the
reason; ask the owner (
teahubxyz) on the issue. - Porting from the old instance: only when a card needs it, only after reading it, one piece per commit, and a line in
docs/rebuild.mdsaying what it took. - Secrets: prod holds Gitea's own keys, the GitHub OAuth client, and the MCP's OAuth client. Nothing else. Do not add one
without a decision in
docs/decisions.md. - Be boring by default; get clever only on an ANDON. Deterministic scripts before cheap inference before expensive inference.
Where things are
- MCP source:
mcp/(FastMCP, deploy withfly deploy). - Decisions:
docs/decisions.md(append-only, dated). - Rebuild log:
docs/rebuild.md.