docs: contract for the issue workflow

Agents reference issues (never close — the closing keywords auto-close
on push, which mis-links fixes to unrelated commits); Jeena closes after
his TV check. Written down so it survives past sessions.
This commit is contained in:
Jeena 2026-10-14 05:18:27 +00:00
parent d99c71a67a
commit 9bdca8c985

View file

@ -79,6 +79,26 @@ setup/login screen, `Ready` renders `HomeScreen`, which switches content on a
file token for non-public videos. (Instance-specific findings stay out of
the public repo and live in the private ops notes/agent-local instructions.)
## Issue workflow (contract, 2026-10-14)
Forgejo issues at git.jeena.net/jeena/jtube-tv are Jeena's acceptance queue —
the workflow is strict:
1. **Only Jeena closes issues.** The agent never closes anything. Every issue is
a change Jeena tests on real TV hardware before giving the OK.
2. **Commit messages reference issues without closing keywords.** "Closes",
"fixes", "resolves" and their variants auto-close issues when pushed —
never use them. Reference by plain number or "Addresses #N", and mention the
*why* in the body so the review stands on its own.
3. **An implemented issue is not done** until Jeena's OK on the TV. State in the
commit or final message which build to install to test it.
4. Agent testing on the emulator/TV via adb is a precondition, not a substitute
for Jeena's check.
5. If a fix turned out to land in a different commit than the one that mentions
the issue, name the fixing commit explicitly in the message body so review
can trace it. (A bad example that must not repeat: bundling "Closes #21"
into an unrelated pushed commit — the commit-to-issue link looked wrong.)
## Conventions
- Kotlin + coroutines; suspend functions in the repository, `runCatching` → `Result<T>`