Ich verwende seit ca. halbem Jahr ausschliesslich OpenCode as Agent (hab mir die anderen nie naeher angeschaut). Wir verwenden aber schon ein gut angepasstes setup (laeuft in docker [kleine sandbox], pre-konfigurierete mcp, skills, commands, etc.).
z.B. konnte Copilot mir durch füttern eines Jira Tickets (Atlassian MCP), Figma Designs und API Sample Response recht gut neue Componenten mit der selben Struktur wie im bisherigen Projekt erstellen, allerdings waren Types dann nicht 100% korrekt und ein paar andere Krankheiten, die ich manuell gefixed habe, aber als Kickstarter spart sowas schon Zeit.
Bei uns in der Praxis hat sich gezeigt dass ein AGENTS.md hier extrem viel hilft. Das ordentlich aufgesetzt was die Details betrifft (wie tests ausfuehren, wie der ueberblick uber die API, dieses sub-modul), das hat extrem viel boost gebracht dass der agent besseren code liefert. Also je nach komplexitaet bis zu code, den ich gar nicht angreifen muss. Und das .md auch warten: sobald ich seh der Agent macht was, was ich nicht erwarten wuerde -> sofort im agents.md erweitern, fuers naechste mal.
Insofern wuerd ich zu dem Website problem sagen, ja gib ihm die docs. Aehnlich Ballmer damals: "context context context!".
Andererseits das grosse Problem ist der Context

Man muss such Github Copilot vorstellen wie "models fuer Masse": cheap, aber nicht das beste Service. Hauptsaechlich beudeutet: kleinere Token-Context und geringere rate limits bei den Premium modellen.
Opus ist das beste Modell mit dem ich gearbeitet habe, aber extrem teuer. Das Problem bei Github: auch bei diesem Modell hat du "nur" 120k oder so context und sehr hohes (globales!?) rate limit.
Das selbe Modell bei AWS Bedrock hat > 200k context. Das macht dann bei komplexeren / laengeren Tasks "den unterschied". Aber Bedrock ist NOCHMAL teurer als github. Hier kannst du mit ein paar heavy tasks in ein paar stunden bis zu 100 USD verbraten.
Context managen ist das "a und o", sobald dir wichtig facts auslaufen, derailed das teil schon mal leichter.
Aus der Praxis wie ich context "spare":
- sub-agents: die haben ihren eigenen context, nehmen weniger vom haupcontext weg, geben schon vorgekaute infos zurueck
- mcp als sub-agents tarnen: das problem bei manchen MCPs ist, dass sie so viel context bieten, dass sie viele Tokens fressen. Wir haben in unserem Team 5 default MCPs und wenn die alle geladen werden, sind 50k schon weg. Der Trick hier, in dem sub-agent zu beschreiben wann welche MCPs zu verwenden sind und der agent laedt sich den ganzen context des jeweiligen MCP dann nur, wenn er (wie im markdown definiert) gebraucht wird. Da warens dann by default nur mehr 10-15k token weg. Der technische Kniff im opencode ist: der haupt-agent darf nicht auf MCP zugreifen (sieht sie nicht, contex wird nicht polluted) und fuer jeden MCP gibt einen sub-agent der aber nur Permissions auf den jeweiligen mcp hat ("sieht" die anderen nicht). Und die laufen auch meist mit dem kleinsten modell weils fuer summaries ausreicht (z.b. haiku).
HTH!