Reason about the estate, not one repo.
OrgService reads a whole GitHub organization as a single source of truth — every repo's open issues and PRs as one backlog and inbox, resolved with one org-scoped query, plus registry-tier awareness, cross-repo version-drift detection, and a quantitative tech-debt model.
"What's the state of the org right now?"
The per-repo view can't answer that. OrgService is built to be the single source of truth for the whole estate — and to answer it with one query, not one call per repo.
OrgService reads your GitHub organization and aggregates it. The agent-ready backlog and the open-PR inbox come from a single org:<you> Search — not N per-repo round-trips. Each repo is resolved to its registry tier (whether it's a published Bazel module). Deps walks sibling MODULE.bazel files and groups each module's consumers by pinned version, so version drift across the estate is a first-class output. And tech debt is modeled quantitatively — a signed number, not a vibe. It's a read-only gRPC contract, so a console, a CLI, or an agent all read the same truth.
One query across org:<you> — not N per-repo calls. The whole estate's backlog and open-PR inbox from a single source of truth.
Every agent-ready issue, org-wide.
Backlog returns the org's open, agent-ready issues from one Search — an issue is agent-ready when it carries exactly one of the agent/* labels. This previews the surface the contract will drive; values illustrative.
| issue | title | labels |
|---|---|---|
| rules_cc_cross#42 | Flaky remote cache on cross builds | agent/ready · bug |
| botnoc#88 | Remove the monolith depot source | agent/ready · next-up |
| plugin-forge#12 | GitLab MR notes follow-up | agent/ready |
Where the org has drifted.
Deps groups a module's consumers by the version they've pinned. More than one group is version skew — the exact thing a release wave exists to resolve. Values illustrative.
| pinned version | consumers | state |
|---|---|---|
| 0.2.0 | botnoc · plugin-tbzl · rules_board | current |
| 0.1.0 | rules_microkit · rules_lang | behind — drift |
Enumerate → aggregate → detect → serve.
A read-only contract, four moves.
Enumerate
List the org's repos (paginated) and resolve each repo's registry tier from the local bazel-registry checkout — public if it's a published module.
Aggregate
One org-scoped GitHub Search builds the open-PR inbox and the agent-ready backlog across every repo at once — not a call per repo.
Detect
Deps walks sibling MODULE.bazel files and groups each module's consumers by pinned version; more than one group is version drift.
Serve
A read-only gRPC surface (OrgService) that a console, a CLI, or an agent all read the same way — the org's own state, once.
Tech debt as a signed number.
Not a heat-map guess — a quantity you can sum across the org and trend over time.
How the model works
- Per-PR delta: a signed integer — positive adds debt, negative removes it — so the org total is the signed sum over merged PRs.
- Methods are data: TODO-delta, cyclomatic-delta, lint-delta, or a weighted blend — the same PR, measured through different lenses.
- It rides the same aggregation: debt attaches to the PRs the org backlog already surfaces, so "who's paying it down" is one read away.
- Preview: the contract and model are defined here; the computed trend is produced by release planning, which reads this same estate.
The whole org's state — repos, backlog, inbox, drift, debt — from one read contract. Ask once, not once per repo.
source · github.com/fastverk/plugin-org
Prove it's safe to merge.
org is one of 14 plugins in the fastverk console — hosted, or in your own cloud.