Forgejo has no discussions — triage's intake door has no surface on this instance #126

Closed
opened 2026-07-29 15:13:39 +00:00 by claude-bot-andresmgsl · 1 comment

.ceremony/TRIAGE.md opens by defining the intake door:

You are the only door issues come through. Humans and agents open
discussions; you decide what becomes work.

This Forgejo has no discussions. The repository's tabs are Code, Issues, Pull
requests, Projects, Releases, Packages, Wiki, Activity, Actions — the surface
every governed role's doctrine assumes simply is not there.

@andres named this on !114 while authorizing reviewers to file issues directly
this once, so this issue is the record of the gap rather than a proposal to close
it today.

What breaks without it

  • Triage's five outcomes lose three of them. "Answer", "Ask" and "Decline"
    all resolve on a discussion; with no discussions they have nowhere to land,
    so ambiguous work either becomes a premature issue or is lost.
  • The bar TRIAGE.md defends erodes by construction. "Discussions are allowed
    to be ambiguous; issues are not" only holds if there is somewhere for ambiguity
    to live. #111 is the worked example: a genuinely good analysis, opened directly
    as an issue, carrying an explicit "Also worth deciding" section — which the
    issue contract forbids — and it reached a builder with no acceptance criteria,
    no test plan and four unresolved product questions that took five review rounds
    and a human's attention to surface.
  • Escalation has no home. Outcome 3 says "the discussion is where humans
    decide; wait there."
  • Builders' scope rule has no outlet. BUILDER.md sends adjacent findings to a
    discussion precisely so they do not widen a PR. Without one, a builder either
    drops the finding or violates scope.
  • The ceremony docs are unfollowable as written on this instance, which is
    its own cost: a role file that describes a surface nobody can reach teaches
    agents to improvise.

Spec — not yet decided, deliberately

@andres flagged two directions and no choice has been made:

  • A — a third-party discussion surface alongside Forgejo.
  • B — model discussions inside what Forgejo has. The cheapest shape is an
    discussion label plus an issue template, with the rule that a labelled issue
    is not work and no builder may claim it; triage converts it into a real issue
    or closes it with a reason. Costs: it weakens "an issue is a work order", and
    the work-queue invariant has to learn to skip them, exactly as it skips epics.
  • C — upstream. Whether Forgejo has discussions on its roadmap is worth
    five minutes before either of the above.

This issue deliberately does not choose. It exists so the gap is on the board and
so the next agent that reads TRIAGE.md and finds no discussions tab has something
to link rather than a decision to improvise.

Tasks

  • Check whether Forgejo has or plans a discussions feature
  • @andres picks A, B or C
  • Implement it
  • Amend CONTRIBUTING.md with how intake actually works here
  • Decide whether .ceremony/* needs a per-instance note, given those files are
    mirrored byte-identically and cannot be edited locally

Acceptance criteria

  • An ambiguous idea can be filed somewhere that is not an issue
  • Triage can Answer, Ask and Decline without minting an issue
  • A builder has a documented place for an out-of-scope finding
  • CONTRIBUTING.md names that place

Test plan

Walk one real ambiguous idea through the chosen surface end to end: filed,
triaged, and either converted to an issue or declined with a reason. Confirm the
work-queue invariant does not flag whatever artifact it leaves behind.

Dependencies

None. Named by @andres on !114 as deferred — filed now so it is not lost.

Filed under @andres's explicit authorization on !114. No queue label applied —
ready does not exist yet.

`.ceremony/TRIAGE.md` opens by defining the intake door: > You are the only door issues come through. Humans and agents open > **discussions**; you decide what becomes work. This Forgejo has no discussions. The repository's tabs are Code, Issues, Pull requests, Projects, Releases, Packages, Wiki, Activity, Actions — the surface every governed role's doctrine assumes simply is not there. @andres named this on !114 while authorizing reviewers to file issues directly this once, so this issue is the record of the gap rather than a proposal to close it today. ## What breaks without it - **Triage's five outcomes lose three of them.** "Answer", "Ask" and "Decline" all resolve *on a discussion*; with no discussions they have nowhere to land, so ambiguous work either becomes a premature issue or is lost. - **The bar TRIAGE.md defends erodes by construction.** "Discussions are allowed to be ambiguous; issues are not" only holds if there is somewhere for ambiguity to live. #111 is the worked example: a genuinely good analysis, opened directly as an issue, carrying an explicit "Also worth deciding" section — which the issue contract forbids — and it reached a builder with no acceptance criteria, no test plan and four unresolved product questions that took five review rounds and a human's attention to surface. - **Escalation has no home.** Outcome 3 says "the discussion is where humans decide; wait there." - **Builders' scope rule has no outlet.** BUILDER.md sends adjacent findings to a discussion precisely so they do not widen a PR. Without one, a builder either drops the finding or violates scope. - **The ceremony docs are unfollowable as written** on this instance, which is its own cost: a role file that describes a surface nobody can reach teaches agents to improvise. ## Spec — not yet decided, deliberately @andres flagged two directions and no choice has been made: - **A — a third-party discussion surface** alongside Forgejo. - **B — model discussions inside what Forgejo has.** The cheapest shape is an `discussion` label plus an issue template, with the rule that a labelled issue is *not* work and no builder may claim it; triage converts it into a real issue or closes it with a reason. Costs: it weakens "an issue is a work order", and the work-queue invariant has to learn to skip them, exactly as it skips epics. - **C — upstream.** Whether Forgejo has discussions on its roadmap is worth five minutes before either of the above. This issue deliberately does not choose. It exists so the gap is on the board and so the next agent that reads TRIAGE.md and finds no discussions tab has something to link rather than a decision to improvise. ## Tasks - [ ] Check whether Forgejo has or plans a discussions feature - [ ] @andres picks A, B or C - [ ] Implement it - [ ] Amend `CONTRIBUTING.md` with how intake actually works here - [ ] Decide whether `.ceremony/*` needs a per-instance note, given those files are mirrored byte-identically and cannot be edited locally ## Acceptance criteria - [ ] An ambiguous idea can be filed somewhere that is not an issue - [ ] Triage can Answer, Ask and Decline without minting an issue - [ ] A builder has a documented place for an out-of-scope finding - [ ] `CONTRIBUTING.md` names that place ## Test plan Walk one real ambiguous idea through the chosen surface end to end: filed, triaged, and either converted to an issue or declined with a reason. Confirm the work-queue invariant does not flag whatever artifact it leaves behind. ## Dependencies None. Named by @andres on !114 as deferred — filed now so it is not lost. *Filed under @andres's explicit authorization on !114. No queue label applied — `ready` does not exist yet.*
claude-bot-andresmgsl added the
enhancement
scope:docs
labels 2026-07-29 15:13:39 +00:00
Owner

we will use a label in the issue i want to start a triage

we will use a label in the issue i want to start a triage
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/rig#126
No description provided.