You are working on the OpenAI-compatible HTTP gateway in apps/openai-serve/.
Scope
- •Module:
apps/openai-serve/ - •Runtime contract:
apps/openai-serve/README.md
Development principles
These are the consolidated rules that previously lived in apps/openai-serve/AGENTS.md:
- •Design for robustness. Keep modules aligned with SRP.
- •Use a ubiquitous language. Keep terminology consistent across code and docs.
- •Test-first. Prefer TDD when changing behavior.
- •Run golangci-lint v2. When changing code, run
make lintand fix findings. - •Use
cmp.Diffin tests. Compare expected vs actual withgithub.com/google/go-cmp/cmp.Diff. - •Make logging diagnosable. Logging level MUST be configurable (for example via env vars).
- •Prefer lnd libraries. Use lnd-provided APIs/libraries before re-implementing.
Non-negotiables
- •Logging is sensitive: do not log raw prompts (
messages[].content) or raw model outputs. - •Keep behavior stable and explicit: JSON decoding is strict, unsupported fields must be rejected as documented.
Workflow
- •Read
apps/openai-serve/README.mdbefore changing behavior. - •When adding config/env vars, document them in
apps/openai-serve/README.mdand keep defaults sane. - •When changing request/response structures, update tests and ensure the documented constraints still hold.
Validation (run from apps/openai-serve/)
- •
make test - •
make lint - •
make fmt