Skip to content

docs: runner routing by visibility, $80 cost envelope, AI-findings billing - #52

Merged
rldyourmnd merged 1 commit into
mainfrom
docs/runner-routing-and-cost-envelope
Aug 1, 2026
Merged

docs: runner routing by visibility, $80 cost envelope, AI-findings billing#52
rldyourmnd merged 1 commit into
mainfrom
docs/runner-routing-and-cost-envelope

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Closes three documentation gaps found while auditing the live estate.

Runner routing was undocumented

Private-repository minutes are metered; public ones are free and unlimited. The cost-optimal routing is therefore the opposite of "use our own hardware everywhere":

Visibility Route to
public GitHub-hosted — free, and self-hosted here is a security defect, not a saving
private self-hosted label — removes metered minutes from the bill

docs/05-runners.md gains a Routing by visibility section carrying that rule, the fork-PR RCE reasoning, and an explicit statement that this repository is public and must never route itself to self-hosted or ship a self-hosted default in examples/.

Two runner settings no workflow file can reach

CodeQL default setup and Code Quality scans are scheduled by GitHub, not by a workflow. Each has its own runner control. Miss either and the repository keeps burning metered minutes while every caller says otherwise — documented with the exact API call and UI path.

AI findings were undocumented, and they are the expensive part

docs/16-code-quality.md gains an AI findings section. They are metered separately from the $10 licence with no included allowance — every billing line shows discountAmount: 0.00, at $0.01/credit. One repository burned 774.9 credits in ~12 days, about $19/month, nearly twice the licence that covers the whole organization.

Also recorded: a product budget cannot fence this off, because the budget must leave headroom for the licence accruing under the same SKU. The per-repository switch is the only real control. And where CodeQL finds no supported language the switch is absent entirely — a stronger guarantee than "off", and not something to fix.

Correction

sha_pinning_required is true at both org and enterprise level. The doc claimed false and listed it under "what this estate does not have".

Added

examples/nddev/security-private-selfhosted.yml — same coverage as the existing nddev suite with every job pinned to the self-hosted fleet, registered with the catalog validator.


validate_all.py: 18/18 OK. Docs-only plus one validator allow-list entry; no reusable workflow behaviour changes.

…lling

Three gaps this closes, all found while auditing the live estate:

- No documented rule for which repositories run where. Private minutes are
  metered and public ones are not, so the cost-optimal routing is private ->
  self-hosted, public -> GitHub-hosted. Adds that rule plus the reason a
  self-hosted runner on a public repo is a security defect rather than a saving,
  and records that this library is itself public and must never route to
  self-hosted.

- Two runner settings are invisible to workflow files. CodeQL default setup and
  Code Quality scans are scheduled by GitHub, not by a workflow, and each has
  its own runner control. Missing either leaves a repository burning metered
  minutes while every caller claims otherwise.

- AI findings were undocumented. They are metered separately from the Code
  Quality licence with no included allowance (discountAmount is 0.00 on every
  line, $0.01/credit); one repository burned 774.9 credits in ~12 days, roughly
  twice the licence that covers the whole organization. A product budget cannot
  fence this off because the licence needs headroom under the same SKU, so the
  per-repository switch is the only real control.

Also corrects a stale claim: sha_pinning_required is now true at both org and
enterprise level, not false. Adds the private self-hosted caller example and
registers it with the catalog validator.

validate_all.py: 18/18 OK.
@rldyourmnd
rldyourmnd merged commit 4cc48c9 into main Aug 1, 2026
11 checks passed
@rldyourmnd
rldyourmnd deleted the docs/runner-routing-and-cost-envelope branch August 1, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant