2026-03-10T18:28:59Z - 2026-09-10T18:28:59Z
Overview
8 releases published by 3 users
Published
0.6.3
0.6.3
Published
0.6.2
0.6.2
Published
0.6.1
0.6.1
Published
0.4.1
0.4.1
Published
0.4.0
0.4.0
Published
0.3.0
0.3.0
Published
0.2.0
0.2.0
Published
0.1.0
0.1.0
114 pull requests merged by 4 users
Merged
#277 fix(labels): compare release shape to merge base
Merged
#274 fix: resume a stranded merge-door release
Merged
#272 fix: publish Forgejo releases atomically
Merged
#270 docs: correct upstream sync campaign record
Merged
#267 release: forge 0.6.3
Merged
#266 fix: align needs-triage label description
Merged
#264 docs: consume stranded 0.6.2 changelog entry
Merged
#262 docs: replace discussion intake with proposals
Merged
#261 fix: restore Forgejo workflow names
Merged
#260 docs: make release-path script the sole source
Merged
#256 fix: keep fork-headed label runs green
Merged
#255 fix: refuse release PRs that strand target fragments
Merged
#254 fix: exhaust Forgejo timeline pagination
Merged
#252 fix: bind Refs parser to one token
Merged
#250 release: forge 0.6.2
Merged
#249 fix: read live review requests from each forge
Merged
#248 docs: prepare 0.6.2 upstream release notes
Merged
#244 fix(labels): grade Forgejo review states
Merged
#242 fix: distinguish Forgejo mergeability states
Merged
#239 feat: record release window membership separately
Merged
#237 test: update roster drift fixture
Merged
#233 docs: adopt upstream 0.6.1 and 0.6.2 doctrine
Merged
#227 docs: record delivered 0.6.1 runner exercise
Merged
#226 release 0.6.1
Merged
#225 chore: restore kimi to the review panel (#224)
Merged
#223 .github/labels.conf + CONTRIBUTING + labels.test — the panel names an identity that can actually review (#222)
Merged
#221 changelog.d/220.md — the 0.4.1 → 0.6.1 gap statement (#220)
Merged
#218 labels-sweep — pass bootstrap through the workflow_call boundary it was lost at (#215)
Merged
#216 docs/RUNNER-PROBES.md — record the venue's first delivered drills (#202)
Merged
#213 .github/workflows/labels.yml — wake the sweep over REST, so a board event reconciles in seconds (#205)
Merged
#214 actions/refs-not-closing — gather over REST, so the guard produces verdicts on this forge (#199)
Merged
#207 drills/README.md — the standing runner-probe venue, and why the drill disposal rule does not apply to it (#202)
Merged
#203 fix(docs-sync): the doctrine mirror is fetched from the forge in play, never a built-in one (#201)
Merged
#208 docs/UPSTREAM-SYNC.md + .upstream-ref + the delta-inventory guard — the recurring sync, written from having just done one (#200)
Merged
#212 lib/forge-*.sh + labels-reconcile — forge_commit_at, because Forgejo serves a single commit at /git/commits/{sha} (#209)
Merged
#211 issueflow-reconcile — the board discriminator is .pull_request == null, not has(), or this forge has no issues (#210)
Merged
#206 lib/forge-forgejo.sh + labels-reconcile — label removal is a full-set PUT, and a write that did not happen fails the sweep (#192)
Merged
#204 actions/* + lib/* + CHANGELOG — merge upstream 0.6.0 onto the forge tree, and port every gh call site it brought (#198)
Merged
#196 labels.conf + CONTRIBUTING — the panel and triage rosters name identities that exist on this forge (#195)
Merged
#190 release: 0.4.1
Merged
#194 drills/0.4.1.md — the post-merge rehearsal passed; record both runs (#191)
Merged
#193 lib/facts.sh + release.yml — the release doors speak the shim, and an unread fact refuses (#191)
Merged
#189 actions/* + lib/* — one forge abstraction, two backends (#188)
Merged
#186 fix: blocked_reference_records unions every Blocked by clause (#184)
Merged
#183 lib/changelog.sh + changelog-armed — the shape anchor becomes declarable; ceremony flips to grouped
Merged
#181 fix: blocked excludes state:needs-human in decide_state()
Merged
#176 feat: add post-merge issue queue state
Merged
#179 docs: a park is declared once and stands; a nothing-changed resumption posts nothing
Merged
#174 docs: add actions read to private caller guidance
Merged
#169 changelog_fragment_problem — entries are bounded at 300 characters
Merged
#164 release: cut 0.3.0
Merged
#163 feat: fail shape drift on the introducing PR
Merged
#162 fix: strip the grouped headings from the four drifted fragments
Merged
#155 docs: a directive hold ends on the labels, and stale hold prose is triage's to correct
Merged
#153 docs: FLEET.md's reviewer wake describes the deployed requested_reviewers sweep
Merged
#152 docs: a post-merge acceptance criterion rides Refs #N — triage closes on the evidence
Merged
#150 fix: the CONSUMERS.md stub's issues: types match the caller's, parity-tested
Merged
#147 docs: the drill's delete is the operator's step — the builder archives
Merged
#143 fix: review_requested wakes the labels sweep — blocker:unrequested clears when the ask lands
Merged
#146 docs: teach reviewers the queue mechanics
Merged
#140 fix: a queue-cancelled duplicate check is not a verdict — checks_state discards it when a real one stands
Merged
#133 fix: labels/scope writes additively — a label applied mid-job survives
Merged
#141 docs: state the release PR changelog exemption
Merged
#136 fix: facts.sh reads a parentless head as base_ver=(none), not exit 128
Merged
#128 release: 0.2.0
Merged
#125 ceremony adopts changelog.d — the flag flip
Merged
#127 test: correct changelog guard trio interaction
Merged
#123 feat: arm changelogs in fragment mode
Merged
#119 docs: define directed-hold parked claims
Merged
#124 actions/changelog-assembled — the release PR's section must be exactly the fragments it consumed
Merged
#107 feat: warn when core taxonomy labels are missing
Merged
#108 LABELS.md: delete the scope table — the per-repo set lives in labels.conf and the repo's CONTRIBUTING
Merged
#120 lib/changelog.sh + bin/changelog-assemble — read the fragments, assemble one section, consume them
Merged
#106 labels-reconcile: report why the degraded read degraded; blind-sweep warning stops asserting an unobserved cause
Merged
#110 BUILDER.md: the handed-off PR is the fourth parked shape; the handoff is its declaration
Merged
#99 feat: validate publishable changelog sections
Merged
#96 fix: surface wholly blind label sweeps
Merged
#94 labels-reconcile: retire the six GitHub default labels at bootstrap (#93)
Merged
#92 fix: a triage-authored issue arrival must not abort the sweep
Merged
#89 docs: FLEET.md — the assignee's attention wake
Merged
#88 docs: define the attention contract
Merged
#87 feat: add the attention core label row
Merged
#81 docs: the parked claim and the one-build-at-a-time rule
Merged
#76 docs: make consumer guard adoption tag-aware
Merged
#80 docs: the operator notifier's needs-ruling queue and triage's past-24h wake (D16)
Merged
#78 feat: the escalation comment's shape and the ladder's rungs, mechanically observed
Merged
#75 docs: define the ruling escalation contract
Merged
#71 feat: nudge resolved offsite claims
Merged
#70 feat: exempt offsite claims from reclaim clock
Merged
#64 feat(labels): needs-ruling sweep invariants — staleness skip, bare-flag check, 7-day nudge
Merged
#60 feat(guards): actions/runner-isolated — no pull_request-triggered job on a self-hosted runner
Merged
#63 fix: guard cross-repo issue references
Merged
#62 docs: define cross-repo discovery guards
Merged
#32 feat: reconcile the issue work queue
Merged
#54 feat(labels): needs-ruling — the label, the doctrine, and the reconciler's exclusion rule (#51)
Merged
#53 docs: CONSUMERS.md — the rig conversion's lessons (#13)
Merged
#49 release: 0.1.0
Merged
#48 docs: README doctrine + CONSUMERS.md adoption guide
Merged
#43 feat: actions/docs-sync — vendored doctrine, machine-verified
Merged
#44 feat: dogfood bootstrap — ceremony adopts its own ceremony
Merged
#42 feat: actions/drill-recorded — a release carries its evidence
Merged
#41 feat: actions/changelog-monotonic — shipped release headings are append-only
Merged
#39 feat: the reusable release workflow — both doors, one implementation
Merged
#40 docs: FLEET.md — the roster's physical anatomy, as-built
Merged
#33 feat: actions/changelog-armed — the version-keyed arming guard
Merged
#31 feat: lib/decide.sh — the merge door's decision, pure and exhaustively tested
Merged
#29 feat: add canonical changelog section extractor
Merged
#28 feat: lib/version.sh — one version abstraction, two backends
Merged
#27 feat: centralize labels machinery
Merged
#25 ci: scaffold test and lint workspace
Merged
#26 feat: entry templates — the pipeline's doors made mechanical
Merged
#22 ci: interim labels-bootstrap dispatch — the taxonomy as a job, not a paste
Merged
#21 docs: the roster — five identities, five boxes, recusal by construction
Merged
#17 docs: the agent team flow — CONTRIBUTING, LABELS, and the three role files
124 issues closed from 3 users
Closed
#275 labels-reconcile.sh — the release-shape guard reads the base branch tip, so any branch cut before a release merge gets a phantom warning
Closed
#273 release.yml + lib/preflight.sh — the merge door resumes the tag it stranded, instead of refusing every re-run with a diagnosis it cannot support
Closed
#265 actions/labels-reconcile — the shipped needs-triage description still routes filers to a discussion, so every governed board contradicts LABELS.md since #247
Closed
#271 lib/forge-forgejo.sh — publish the release atomically, so a failed asset upload cannot strand a published, incomplete release
Closed
#269 docs/UPSTREAM-SYNC.md — the deferral record names a ceiling that expired before it was written, and an if the operator has now answered
Closed
#268 release-init after 0.6.3 — the survey, and the one ruling that decides the next window's identity
Closed
#228 adopt upstream 0.6.1–0.6.3 as forge release 0.6.2 — sync epic
Closed
#231 release 0.6.2 — three stamps, consolidated changelog, UPSTREAM-SYNC record
Closed
#263 CHANGELOG.md + changelog.d/238.md — consume #238's stranded fragment into the shipped 0.6.2 section (ruling B on #231)
Closed
#247 docs/CONSUMERS.md + .github/ISSUE_TEMPLATE + TRIAGE.md — the intake door is a proposal issue stamped needs-triage, because this forge has no Discussions
Closed
#243 lib/forge-forgejo.sh — the commit-status rollup carries no workflowName, so labels-reconcile's #208 self-exclusion is inert and the label machine grades its own red run
Closed
#251 drills/README.md — doors-unchanged condition 2 keeps its own copy of the release path, and the copy has been one file short since #198
Closed
#241 .github/workflows/labels.yml — the review gate has been silently off since 2026-08-09: every fork-headed pull_request_target run gets a read-only token
Closed
#253 actions/changelog-assembled — nothing guards the window between a release PR's merge base and its merge, so 0.6.2 shipped #238 uncredited and tagged a guard-red commit
Closed
#240 lib/forge-forgejo.sh — /issues/{n}/timeline sets x-total-count to the page size, so forge_timeline returns the OLDEST 50 events and reports success
Closed
#234 actions/issueflow-reconcile — bind refs_references to the reference token that follows the keyword
Closed
#238 lib/forge-forgejo.sh + lib/forge-github.sh + actions/labels-reconcile — forge_pr_review_requests: read the live request set from Forgejo's REQUEST_REVIEW rows, so a builder's push stops handing the board to the panel
Closed
#246 changelog.d/246.md — the 0.6.2 upstream-credit and deferral prose, as a grouped fragment (preparatory to #231)
Closed
#235 actions/labels-reconcile — grade Forgejo's review vocabulary: REQUEST_REVIEW reads as a verdict, so state:bots-reviewing is stripped from every opening round
Closed
#236 lib/forge-forgejo.sh — Forgejo's mergeable boolean is four conditions, not GitHub's tri-state: 17 of the 18 blocker:conflict writes on this forge were drafts
Closed
#230 actions/issueflow-reconcile + RELEASES.md + TRIAGE.md — membership record, carrier-gate fixes, CommonMark row parsing (upstream-0.6.3)
Closed
#232 test/labels.test.sh:249 — the roster fixture still mutates glm-reviewer-andresmgsl, so the conf/prose sync check is red on main
Closed
#229 doctrine docs: port upstream-0.6.1/0.6.2 (vendored manifest routing, green-check scoping, post-merge split, parked-claim ordering)
Closed
#197 ceremony tracks upstream 0.6.0 on this forge — the merge, the new gh call sites, and the sync runbook
Closed
#217 0.6.1 consumer exercise in the standing venue — wake: the 0.6.1 release (#219) closes
Closed
#219 release 0.6.1 — the forge port's first release on this forge, and why 0.6.0 is skipped
Closed
#224 .github/labels.conf + CONTRIBUTING + labels.test — kimi returns: the panel grows to four identities (#222's second edit)
Closed
#220 changelog.d/220.md — the 0.4.1→0.6.1 gap statement, as a grouped fragment (preparatory to #219)
Closed
#215 workflow_call does not inherit the caller's dispatch inputs — every dispatch-woken sweep bootstraps
Closed
#222 .github/labels.conf + CONTRIBUTING + labels.test — swap glm for kimi on the panel while kimi is down
Closed
#209 labels-reconcile HEAD_COMMIT_AT — Forgejo serves a single commit at /git/commits/{sha}, so blocker:unrequested is never judged here
Closed
#205 .github/workflows/labels.yml — the sweep dispatch is gh workflow run, the one gh call site a workflow cannot declare a client for
Closed
#202 a live forgejo-runner probe venue — every drill repo is archived, so the runner-only half of #192 has nowhere to run
Closed
#199 actions/refs-not-closing — the gather is gh api graphql, which Forgejo does not serve at all
Closed
#201 actions/docs-sync — the doctrine mirror is fetched from github.com, so a consumer on this forge is verified against a different tree with the same version number
Closed
#200 docs/UPSTREAM-SYNC.md — the recurring upstream sync, its standing resolutions, and a guard on where the forge delta lives
Closed
#210 issueflow-reconcile is blind on this forge — has("pull_request") selects zero issues, and the sweep reports reconciled.
Closed
#192 forge_label_remove — every label removal on Forgejo returns HTTP 500, and labels-reconcile reports it as reconciled
Closed
#198 actions/* + lib/* + CHANGELOG — merge upstream 0.6.0 onto the forge tree (10 files, 18 hunks) and port 0.6.0's new gh call sites
Closed
#195 .github/labels.conf + CONTRIBUTING.md — panel and triage name five identities that do not exist on this forge, so no issue can be normalized and no panel can converge
Closed
#191 lib/facts.sh + release.yml — the release doors are gh-only, so neither can publish on a Forgejo consumer
Closed
#188 actions/* + lib/* — ceremony is gh-only, so the reconcilers cannot run on a Forgejo consumer (rig's board has been unreconciled since it moved)
Closed
#187 FLEET.md mirrors an implementation that now exists in crew — and the mirror is wrong about scope
Closed
#184 issueflow-reconcile — a repeated Blocked by declaration promotes on its first sentence alone (false ready on rig#154)
Closed
#182 lib/changelog.sh + changelog-armed — the shape anchor becomes declarable, and ceremony's changelog flips to grouped
Closed
#175 LABELS.md + issueflow-reconcile — post-merge: the fourth queue state, for a merged PR whose acceptance criteria remain
Closed
#180 labels-reconcile.sh decide_state() — blocked excludes state:needs-human, falling to state:addressing
Closed
#178 BUILDER.md — a park is declared once and stands; a nothing-changed resumption posts nothing
Closed
#173 labels-reconcile hint + CONSUMERS.md — the private-repo read set is three scopes: checks, statuses, actions
Closed
#167 changelog_fragment_problem — entries are bounded at 300 characters, red on the PR that writes the fragment
Closed
#157 0.3.0 — repair the fragment shape, move the one-shape rule onto the PR, cut the tag
Closed
#160 Release 0.3.0 — the second assembled tag, carrying the shape guard and eleven issues of prose
Closed
#159 lib/changelog.sh + changelog-armed — the one-shape rule fails the PR that introduces the drift
Closed
#158 changelog.d — strip the grouped headings from the four drifted fragments
Closed
#83 attention — a state-machine wake for comment-borne demands
Closed
#154 BUILDER.md + TRIAGE.md — a directive hold ends on the labels, and hold prose that outlives the lift is triage's to correct
Closed
#149 FLEET.md — the reviewer wake still specs a gh search trigger the bench replaced with an org-wide requested_reviewers sweep
Closed
#151 BUILDER/TRIAGE/REVIEWER — a post-merge acceptance criterion needs Refs #N, not Closes #N
Closed
#137 labels caller — the ask never wakes the sweep, so blocker:unrequested outlives the request
Closed
#144 docs/CONSUMERS.md — the published stub's issues: types are a subset of the caller's; a consumer never wakes on edited or reopened
Closed
#135 drills/README.md — the scratch repo's delete is the operator's step; the builder archives, names it, and blocks on nothing
Closed
#145 REVIEWER.md — four review mechanics the vendored doctrine never carried: API queue, one-shot writes, throwaway checkouts, verify at the pin
Closed
#139 actions/labels-reconcile — a queue-cancelled duplicate check is not a verdict; checks_state reads it as FAILURE and reds green PRs
Closed
#130 labels/scope clobbers a label written while it runs — the ceremony PR can silently lose release
Closed
#131 The changelog rule has one exception it never states: the release PR cannot write a fragment
Closed
#134 lib/facts.sh — a repository's first commit has no first parent; the merge door dies at exit 128 instead of reading (none)
Closed
#118 Release 0.2.0 — the first tag carrying fragment mode, and the first section the assembler wrote
Closed
#117 ceremony adopts changelog.d — convert the Unreleased entries, delete the heading, rewrite the doctrine that describes it
Closed
#126 test/changelog-assembled.test.sh — main is red: #115's fragment mode falsified #116's "armed stays green" trio row
Closed
#115 actions/changelog-armed — fragment mode: the directory is the arming, and a bad entry fails on its own PR
Closed
#113 BUILDER.md — a claim held by directive is the parked claim's fifth shape
Closed
#116 actions/changelog-assembled — the release PR's section must be exactly the fragments it consumed
Closed
#105 actions/labels-reconcile — the sweep must warn when a core label the taxonomy declares is missing from the repo
Closed
#104 LABELS.md — delete the scope table; the per-repo set lives in labels.conf and the repo's CONTRIBUTING
Closed
#114 lib/changelog.sh + bin/changelog-assemble — read the fragments, assemble one section, consume them
Closed
#101 actions/labels-reconcile — the degraded read must report why it degraded, and the blind-sweep warning must stop asserting a cause it never observed
Closed
#109 BUILDER.md — a handed-off PR is a fourth parked shape; today the slot rule makes every builder either idle or out of contract
Closed
#98 lib/changelog.sh — a publishable section is counted in entries, not bytes, and the re-arm seeds Added/Changed/Fixed
Closed
#95 actions/labels-reconcile + docs/CONSUMERS.md — the labels caller stub under-grants, and a wholly-blind sweep stays silent
Closed
#93 actions/labels-reconcile — the bootstrap must retire the default GitHub labels it documents
Closed
#90 Epic: every consumer has the ceremony labels automation adopted
Closed
#91 actions/issueflow-reconcile — a triage-authored issue arrival must not abort the sweep
Closed
#86 FLEET.md — the assignee's attention wake
Closed
#85 LABELS.md / TRIAGE.md / BUILDER.md — the attention contract
Closed
#16 Adopt in incubator — the greenfield consumer
Closed
#84 labels-reconcile — the attention core label row
Closed
#14 Convert box
Closed
#50 needs-ruling — the pending-human-decision flag (epic)
Closed
#77 BUILDER.md / TRIAGE.md — the parked claim and the one-issue-at-a-time rule
Closed
#74 FLEET.md — the operator notifier and the fleet's wake conditions for an aging ruling
Closed
#15 Convert cast — package-json backend + artifact hook debut
Closed
#73 lib/ruling.sh — the escalation comment's shape and the ladder's rungs, mechanically observed
Closed
#79 [fixture] #73 dogfood — a deliberately malformed escalation
Closed
#72 The escalation contract — the ruling trigger, the comment shape, and the default ladder
Closed
#56 Fleet scope and cross-repo discovery — the two guards, the runner hole, the roster question (epic)
Closed
#69 issueflow-reconcile — the offsite stale-flag nudge, from cross-referenced timeline events
Closed
#13 Convert rig (pilot)
Closed
#68 offsite — the label, the doctrine, and the claim-reclaim exemption
Closed
#52 needs-ruling in the sweep — staleness skip, bare-flag detection, the 7-day nudge
Closed
#58 actions/runner-isolated — no pull_request-triggered job may run on a self-hosted runner
Closed
#61 issueflow-reconcile — cross-repo references must not be read as local issue numbers
Closed
#66 [fixture #50] bare ruling flag (PR #64 dogfood)
Closed
#65 [fixture #50] ruling staleness exemption + 7-day nudge (PR #64 dogfood)
Closed
#57 BUILDER.md / REVIEWER.md / FLEET.md — the cross-repo discovery guards: which panel, which link, which wake
Closed
#18 Issue-flow reconciliation — the work-queue sweep
Closed
#36 [fixture #18] stale abandoned claim
Closed
#51 needs-ruling — the label, the doctrine, and the PR reconciler's exclusion rule
Closed
#11 Dogfood: ceremony releases itself (0.1.0)
Closed
#12 README doctrine + docs/CONSUMERS.md adoption guide
Closed
#19 actions/docs-sync — vendored doctrine, machine-verified (.ceremony/ mirror)
Closed
#7 actions/drill-recorded — a release carries its evidence
Closed
#6 actions/changelog-monotonic — shipped release headings are append-only
Closed
#9 The reusable release workflow — both doors, one implementation
Closed
#38 [fixture #18] completed epic
Closed
#37 [fixture #18] cleared blocker
Closed
#35 [fixture #18] conflicting queue states
Closed
#34 [fixture #18] non-triage arrival
Closed
#5 actions/changelog-armed — the version-keyed arming guard (establishes the composite pattern)
Closed
#8 lib/decide.sh — the merge door's decision, pure and exhaustively tested
Closed
#4 lib/changelog.sh — the one canonical section extractor
Closed
#3 lib/version.sh — one version abstraction, two backends
Closed
#10 Labels machinery: reusable workflow + core/scope table split
Closed
#2 Scaffold: layout, test harness, shellcheck + actionlint CI
Closed
#24 Entry templates — the pipeline's doors made mechanical
1 issue created by 1 user
Opened
#276 HUMAN_REVIEWER has no plumbing — every consumer’s needs-human handoff 404s on danmt, and the log reports it as done