diff --git a/forgejo-triage-labels.md b/forgejo-triage-labels.md new file mode 100644 index 0000000..3217e0b --- /dev/null +++ b/forgejo-triage-labels.md @@ -0,0 +1,37 @@ +--- +type: convention +title: "Forgejo issue triage labels — afk / hitl / blocked" +summary: "The three-label triage vocabulary for issues on the Forgejo tracker: triage/afk (agent-ready), triage/hitl (needs human), triage/blocked (waiting on another issue). How to apply them and why the taxonomy is deliberately minimal." +tags: + - type/convention + - tool/forgejo + - convention/issue-triage + - domain/ai-agents +scope: global +last_updated: 2026-07-08 +--- + +# Forgejo Issue Triage Labels + +Established 2026-07-08 (first applied on `jared/servers`). Create these labels in any repo that gets issues; keep the vocabulary identical across repos. + +| Label | Color | Meaning | +|---|---|---| +| `triage/afk` | `0e8a16` (green) | Fully specified — an autonomous agent can pick it up and complete it with no human decisions. Issue body must contain acceptance criteria. | +| `triage/hitl` | `d93f0b` (red) | Needs the human's hands or judgment: account access, physical machines, spending decisions, design calls. | +| `triage/blocked` | `c5def5` (light blue) | Has an unresolved blocker issue. Remove when blockers close. Coexists with afk/hitl — the other label says what the issue becomes once unblocked. | + +## Rules + +- Every published issue gets exactly one of `afk`/`hitl`, plus `blocked` if applicable. +- `afk` is a promise: the issue body follows the tracer-bullet template (What to build / Acceptance criteria / Blocked by) and is self-sufficient without conversation context. +- Prefer `afk` over `hitl` — split the human step into its own small `hitl` issue rather than tainting a whole slice. +- Deliberately minimal (no priority/size/area facets): per the avoid-speculative-tooling principle, add more facets only when their absence actually hurts, not preemptively. + +## Creating in a new repo + +```bash +tea labels create --name triage/afk --color 0e8a16 --description "Ready for an autonomous agent - no human decisions needed" +tea labels create --name triage/hitl --color d93f0b --description "Needs human action or decision" +tea labels create --name triage/blocked --color c5def5 --description "Waiting on another issue" +``` diff --git a/journal/2026-07-08.md b/journal/2026-07-08.md index d816b48..635507e 100644 --- a/journal/2026-07-08.md +++ b/journal/2026-07-08.md @@ -435,3 +435,22 @@ tags: [scope/global, type/log] **Reason:** other **Vault notes touched:** (none) + +## Session — 2026-07-08T19:43:26Z + +**Project:** /home/jared/servers +**Reason:** other +**Vault notes touched:** +(none) + +## Session — 2026-07-08T21:49:13Z + +**Project:** /home/jared/dev/ruby-gems +**Reason:** prompt_input_exit +**Vault notes touched:** +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md +/home/jared/Documents/SecondBrain/reference/planka-v2-api-gotchas.md