From 9bdca8c98550eb21523473b30140846d89c88b25 Mon Sep 17 00:00:00 2001 From: Jeena Date: Wed, 14 Oct 2026 05:18:27 +0000 Subject: [PATCH] docs: contract for the issue workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- AGENTS.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 02b198e..58ee33e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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`