docs(adr): adr template, design principles adr #26

Merged
mvhutz merged 20 commits from docs/contract-v2 into main 2026-07-05 01:27:01 +00:00
2 changed files with 49 additions and 0 deletions
Showing only changes of commit 3bc9d63b93 - Show all commits
+48
View File
@@ -0,0 +1,48 @@
# AGENTS.md
## Git hosting: this is Gitea, not GitHub
`go-cuckoo` is hosted on a self-hosted Gitea instance, not GitHub. `gh` will
not work against it — use the `tea` CLI instead.
- Remote: `git@git.maximhutz.com:tools/go-cuckoo.git`
- Repo slug for `tea`: `tools/go-cuckoo`
- PR URLs look like `https://git.maximhutz.com/tools/go-cuckoo/pulls/<N>`
(path is `pulls`, matching `tea`'s `pulls` command — not `pull`).
## Inspecting a PR
Get metadata as JSON:
```sh
tea pulls --repo tools/go-cuckoo -o json \
-f "index,title,state,author,base,head,body,labels" <PR#>
```
Non-interactive sessions print a one-line `NOTE: no gitea login detected,
falling back to login '<name>'` on stderr before the JSON — expected, not an
error.
Useful fields from the JSON: `base` / `head` (branch names), `headSha`,
`diffUrl` (`<pr-url>.diff`, fetchable without auth via plain `curl`/`WebFetch`
for a public repo).
**`-f diff` and `-f patch` are listed in `tea pulls --help` but are silently
dropped from JSON output — verified empirically, don't rely on them.** To get
the actual diff:
```sh
git fetch origin <base>
git diff origin/<base>...HEAD # only valid if local HEAD == PR's headSha
```
Check local `HEAD` against the PR's `headSha` first (`git rev-parse HEAD`) —
if they differ, the checkout isn't the PR branch and this diff is wrong.
Otherwise fall back to fetching `diffUrl` directly.
## Other `tea` subcommands that exist
`tea pulls list|checkout|create|review|approve|reject|merge|review-comments`,
plus top-level `tea issues`, `tea releases`, `tea labels`. Run
`tea <noun> --help` before assuming GitHub-shaped flags carry over — Gitea's
CLI has its own field names and defaults (e.g. `--state` defaults to `open`).
+1
View File
@@ -33,6 +33,7 @@ Do not equate them.
- [ ] Update the `README.md` and `doc.go` to reflect these principles.
- [ ] Update the contributing guide and pull request template to require these principles are met.
2. The repository should contain a living document, describing the interface differences between `go-cuckoo` and `map`.
(I already started work on branch `docs/interface-congruency-analysis`.)
I should prioritize limiting any incongruencies.
- [ ] Produce the first draft to uncover any current incongruencies.
- [ ] Link the document to the `README.md`.