### Fixed - `issueflow-reconcile` sees this forge's issues again. The board gather used `has("pull_request")`, and every Forgejo entry carries that key — so it selected zero rows on every sweep while printing `reconciled.` (#210). - Three sites take `.pull_request == null`, the discriminator the file's own comment already specified and that one of its four call sites already used (#210). - `post-merge` transitions can fire again: they could not, because the sweep saw no issues to transition (#210). ### Added - A gather-level case drives the real board read against a Forgejo-shaped fixture — every entry carrying the key. The existing discriminator cases assert `jq` expressions in isolation and passed throughout this regression (#210). - A source pin forbids `has("pull_request")` on this surface, because the rule was stated in a comment and violated forty lines below it. It strips comments, so the #188 warning that explains the trap is allowed to stay (#210). - All three sites are covered behaviourally, not only by the pin: the board gather, the release-body gather through an observable window flag, and the per-issue payload check (#210).